Метод didChangeAppLifecycleState
Метод didChangeAppLifecycleState миксина WidgetsBindingObserver
получает новую фазу: приложение на экране, свернуто или его сейчас закроют.
Фазу передают значением AppLifecycleState.
Синтаксис
void didChangeAppLifecycleState()(AppLifecycleState state)
Параметры
| Параметр | Описание |
|---|---|
state | Новая фаза AppLifecycleState. |
Пример
Давайте выведем имя фазы:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home: Scaffold(body: Center(child: ObsDemo()))));
class ObsDemo extends StatefulWidget {
const ObsDemo({super.key});
@override State<ObsDemo> createState() => _ObsDemoState();
}
class _ObsDemoState extends State<ObsDemo> with WidgetsBindingObserver {
String label = 'abcde';
@override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); }
@override void dispose() { WidgetsBinding.instance.removeObserver(this); super.dispose(); }
@override void didChangeAppLifecycleState(AppLifecycleState state) { setState(() => label = state.name); }
@override Widget build(BuildContext c) => Text(label);
}
На экране текст сменится по событию.
Пример
Давайте сравним с paused:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home: Scaffold(body: Center(child: Text('abcde')))));
На экране текст 'abcde'.
Смотрите также
-
миксин
WidgetsBindingObserver,
где объявлен метод -
метод
addObserver,
который подключает observer -
перечисление
AppLifecycleState,
для фаз приложения -
миксин
WidgetsBinding,
который рассылает события