diff --git a/CHANGELOG.md b/CHANGELOG.md index 81200a91..e71c8a33 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ ## NEXT +1. Adapt to the official engine's App Lifecycle state changes ## 5.0.1 1. Add `mixin` modifier to avoid breaking user codes diff --git a/android/src/main/java/com/idlefish/flutterboost/FlutterBoostPlugin.java b/android/src/main/java/com/idlefish/flutterboost/FlutterBoostPlugin.java index 381a8ebd..cee1228d 100644 --- a/android/src/main/java/com/idlefish/flutterboost/FlutterBoostPlugin.java +++ b/android/src/main/java/com/idlefish/flutterboost/FlutterBoostPlugin.java @@ -28,8 +28,9 @@ public class FlutterBoostPlugin implements FlutterPlugin, NativeRouterApi, Activ private static final String TAG = "FlutterBoost_java"; private static final String APP_LIFECYCLE_CHANGED_KEY = "app_lifecycle_changed_key"; private static final String LIFECYCLE_STATE = "lifecycleState"; - private static final int FLUTTER_APP_STATE_RESUMED = 0; - private static final int FLUTTER_APP_STATE_PAUSED = 2; + // See https://github.com/flutter/engine/pull/42418 for details + private static final int FLUTTER_APP_STATE_RESUMED = 1; + private static final int FLUTTER_APP_STATE_PAUSED = 4; private FlutterEngine engine; private FlutterRouterApi channel; diff --git a/example/ios/Podfile b/example/ios/Podfile index f7d6a5e6..bfd60c48 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +platform :ios, '11.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/ios/Classes/container/FBLifecycle.m b/ios/Classes/container/FBLifecycle.m index 981b8628..a0c155ea 100644 --- a/ios/Classes/container/FBLifecycle.m +++ b/ios/Classes/container/FBLifecycle.m @@ -31,7 +31,7 @@ @implementation FBLifecycle + (void)pause { [[FlutterBoost instance]sendEventToFlutterWith:@"app_lifecycle_changed_key" - arguments:@{@"lifecycleState":@2}]; + arguments:@{@"lifecycleState":@4}]; if (ENGINE.viewController != nil){ ENGINE.viewController = nil; } @@ -39,6 +39,6 @@ + (void)pause { + (void)resume { [[FlutterBoost instance]sendEventToFlutterWith:@"app_lifecycle_changed_key" - arguments:@{@"lifecycleState":@0}]; + arguments:@{@"lifecycleState":@1}]; } @end diff --git a/lib/src/boost_flutter_binding.dart b/lib/src/boost_flutter_binding.dart index 974dbbed..65e3718f 100644 --- a/lib/src/boost_flutter_binding.dart +++ b/lib/src/boost_flutter_binding.dart @@ -14,7 +14,6 @@ mixin BoostFlutterBinding on WidgetsFlutterBinding { void initInstances() { super.initInstances(); _instance = this; - changeAppLifecycleState(AppLifecycleState.resumed); } static BoostFlutterBinding? get instance => _instance; diff --git a/lib/src/flutter_boost_app.dart b/lib/src/flutter_boost_app.dart index dbb5311d..48d76f44 100644 --- a/lib/src/flutter_boost_app.dart +++ b/lib/src/flutter_boost_app.dart @@ -122,9 +122,10 @@ class FlutterBoostAppState extends State { void _addAppLifecycleStateEventListener() { _lifecycleStateListenerRemover = BoostChannel.instance .addEventListener(_appLifecycleChangedKey, (key, arguments) { - //we just deal two situation,resume and pause - //and 0 is resumed - //and 2 is paused + // we just deal two situation,resume and pause + // and 1 is resumed + // and 4 is paused + // See https://github.com/flutter/engine/pull/42418 for more details. final int? index = arguments["lifecycleState"];