Я хочу написать настройки пользователя в файл до того, как они покинут приложение, поэтому я ищу что-то в Flutter, как Android onPause() или onStop(). Является ли это чем-то настолько специфичным для платформы, что мне нужно будет писать службы для него и на самом деле использовать специальные методы Android/iOS для этих ситуаций или есть способ сделать это только с помощью Flutter/Dart?Есть ли способ вызвать конкретный код прямо перед тем, как приложение будет убито или перемещено на задний план?
3
A
ответ
4
Мой understaning является то, что это возможно с помощью обратного вызова didChangeAppLifecycleState на WidgetsBindingObserver: 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 (документированы https://flutter.io/platform-services) ,
Проблема в том, что в настоящее время нет события, отправленного при остановке Activity on Android (что означает, что изоляция Dart VM уничтожена). [AppLifecycleState] (https://docs.flutter.io/flutter/dart-ui/AppLifecycleState-class.html) имеет только событие _paused_, no _destroyed_. См. Http://stackoverflow.com/questions/41924890/how-do-i-run-code-in-the-background-even-with-the-screen-off/42041981 –