logo头像

小玉的技术博客

Flutter中App的生命周期

如果想要知道 Flutter App 的生命周期,例如 Flutter 是在前台还是在后台,就需要使用到 WidgetsBindingObserver 了,使用方法如下:

1.State 的类 mix WidgetsBindingObserver:

1
2
3
class MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
...
}

2.在 State 的 initState 里添加监听:

1
2
3
4
5
@override
void initState(){
super.initState();
WidgetsBinding.instance.addObserver(this);
}

3.在 State 的 dispose 里移除监听:

1
2
3
4
5
6
@override
void dispose() {
// TODO: implement dispose
super.dispose();
WidgetsBinding.instance.removeObserver(this);
}

4.在 State 里 override didChangeAppLifecycleState

1
2
3
4
5
6
7
8
9
10
11
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
if (state == AppLifecycleState.paused) {
// went to Background
}
if (state == AppLifecycleState.resumed) {
// came back to Foreground
}
if
}

AppLifecycleState 就是 App 的生命周期,有:

  • resumed
  • inactive
  • paused
  • suspending
支付宝打赏 微信打赏

赞赏是不耍流氓的鼓励