diff --git a/packages/flutter/lib/src/material/material_app.dart b/packages/flutter/lib/src/material/material_app.dart index 20cda68719..128e9cc551 100644 --- a/packages/flutter/lib/src/material/material_app.dart +++ b/packages/flutter/lib/src/material/material_app.dart @@ -86,11 +86,11 @@ class _MaterialAppState extends State implements BindingObserver { assert(mounted); NavigatorState navigator = _navigator.currentState; assert(navigator != null); + bool result = false; navigator.openTransaction((NavigatorTransaction transaction) { - if (!transaction.pop()) - activity.finishCurrentActivity(); + result = transaction.pop(); }); - return true; + return result; } void didChangeSize(Size size) => setState(() { _size = size; }); diff --git a/packages/flutter/lib/src/widgets/binding.dart b/packages/flutter/lib/src/widgets/binding.dart index 47e61c758a..c198f39ed8 100644 --- a/packages/flutter/lib/src/widgets/binding.dart +++ b/packages/flutter/lib/src/widgets/binding.dart @@ -77,8 +77,9 @@ class WidgetFlutterBinding extends BindingBase with Scheduler, Gesturer, Rendere void handlePopRoute() { for (BindingObserver observer in _observers) { if (observer.didPopRoute()) - break; + return; } + activity.finishCurrentActivity(); } void handleAppLifecycleStateChanged(ui.AppLifecycleState state) {