Что делать, если нам нужно знать, когда наше приложение, когда в фоновом режиме? а когда выходит на передний план? Есть ли способ обнаружить это? Ну ... твой счастливый день, как я сейчас тебе объясню. Нам нужно внести небольшое изменение в наш StatefulWidget и, в частности, в наш класс State:
class _MyScreenState расширяет State с помощью WidgetsBindingObserver. После того, как мы реализуем абстрактный класс WidgetsBindingObserver, нам нужно «наблюдать» за изменениями нашего состояния жизненного цикла приложения. , Для этого нам нужно добавить в наше initState следующее:
WidgetsBinding.instance.addObserver (this);
и эту строку в нашем распоряжении:
WidgetsBinding. instance.removeObserver (this);
Отлично! Но где вы «слышите» эти изменения? didChangeAppLifecycleState будет:
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
if (state == AppLifecycleState.paused) {
// went to Background
}
if (state == AppLifecycleState.resumed) {
// came back to Foreground
}
}
Этот трюк оооочень полезен! Если вашему приложению нужно отображать уведомление при переходе в фоновый режим, если вам нужно сохранить данные в этот момент, если вам нужно показать всплывающее окно, когда пользователь вернется, и т. Д. c, существует очень много вариантов использования для этой логики c!
Я нашел это в этой статье, надеюсь, что он будет полезен, и это ссылка на эту ссылку
, и я нашел для него пакет флаттера ссылка