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); }