diff --git a/packages/flutter_mozilla_components/lib/src/geckoview_widget.dart b/packages/flutter_mozilla_components/lib/src/geckoview_widget.dart index f01ed343..563db36a 100644 --- a/packages/flutter_mozilla_components/lib/src/geckoview_widget.dart +++ b/packages/flutter_mozilla_components/lib/src/geckoview_widget.dart @@ -28,11 +28,18 @@ class _GeckoViewState extends State { ); final browserService = GeckoBrowserService(); + late final AppLifecycleListener _listener; @override void initState() { super.initState(); _setupMethodCallHandler(); + _listener = AppLifecycleListener( + onResume: () async { + //Make sure fragment visible after rsuming the app in case native resources have been disposed + await _showNativeFragment(); + }, + ); } void _setupMethodCallHandler() { @@ -66,6 +73,14 @@ class _GeckoViewState extends State { return false; } + @override + void dispose() { + platform.setMethodCallHandler(null); + _listener.dispose(); + + super.dispose(); + } + @override Widget build(BuildContext context) { return PlatformViewLink(