有没有办法在应用程序被杀死或移到后台之前立即调用特定代码?

Is there a way to call specific code right before the app is killed or moves to the background?

我想在用户离开应用程序之前将用户首选项写入文件,因此我在 Flutter 中寻找类似 Android 的 onPause() 或 onStop() 方法的内容。这是平台特定的东西,我需要为它编写服务并实际使用 Android/iOS 的特定方法来应对这些情况,还是有办法只使用 Flutter/Dart 来做到这一点?

我的理解是,这可以通过 WidgetsBindingObserver 上的 didChangeAppLifecycleState 回调实现: https://docs.flutter.io/flutter/widgets/WidgetsBindingObserver-class.html

例子: https://github.com/flutter/flutter/search?utf8=%E2%9C%93&q=didChangeAppLifecycleState

我们绝对需要一些更好的文档和示例。我已经提交: https://github.com/flutter/flutter/issues/7394

如果这些还不能满足您的需求,也可以在您的 Objective-C 或 Java 代码中监听任何事件,并通过 HostMessages 将它们转发给 Dart(记录在 https://flutter.io/platform-services).

首先你需要添加with WidgetsBindingObserver 然后不要忘记初始化和处理 WidgetsBindng 然后你可以从 didChangeAppLifecycleState

调用它