需要监听的类混入WidgetsBindingObserver,initState里添加监听,dispose里移除监听
@override
void initState() {
super.initState();
WidgetsBinding.instance?.addObserver(this);
}
@override
void dispose() {
WidgetsBinding.instance?.removeObserver(this);
super.dispose();
}
重写didChangeAppLifecycleState
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
// 应用进入前台
} else if (state == AppLifecycleState.paused) {
// 应用进入后台
}
}
AppLifecycleState是个状态枚举,共有四种状态:
resumed:应用程序可见且获取焦点状态
paused:应用程序处于用户不可见,不响应用户状态,处于后台运行状态
inactive:应用程序处于非活动状态
detached:应用程序被销毁
网友评论