From 71d80fbd3f788e8cf7c53c8d28100a24d6a1865e Mon Sep 17 00:00:00 2001 From: John McCutchan Date: Tue, 18 Apr 2017 14:18:33 -0700 Subject: [PATCH] Fix hot reload / restart after the back button dismisses the app on Android (#9455) - [x] Refresh FlutterViews before issuing a hot reload / restart Fixes #7248 --- packages/flutter_tools/lib/src/run_hot.dart | 4 ++++ packages/flutter_tools/lib/src/vmservice.dart | 1 + 2 files changed, 5 insertions(+) diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index fc79f4fc41..314c60e2da 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -324,6 +324,8 @@ class HotRunner extends ResidentRunner { } Future _restartFromSources() async { + printTrace('Refreshing active FlutterViews before restarting.'); + await refreshViews(); final Stopwatch restartTimer = new Stopwatch(); restartTimer.start(); final bool updatedDevFS = await _updateDevFS(); @@ -409,6 +411,8 @@ class HotRunner extends ResidentRunner { } Future _reloadSources({ bool pause: false }) async { + printTrace('Refreshing active FlutterViews before reloading.'); + await refreshViews(); if (currentView.uiIsolate == null) throw 'Application isolate not found'; // The initial launch is from a script snapshot. When we reload from source diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index 58d3aa7b53..40284453c8 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart @@ -756,6 +756,7 @@ class VM extends ServiceObjectOwner { } Future refreshViews() async { + _viewCache.clear(); await vmService.vm.invokeRpc('_flutter.listViews', timeout: kLongRequestTimeout); }