1、需要混入 WidgetsBindingObserver类
2、必须添加观察者监听,代码如下
@override
void initState() {
super.initState();
// 必须添加观察者监听
WidgetsBinding.instance?.addObserver(this);
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
switch (state) {
case AppLifecycleState.resumed:
UIUtil.log("页面状态前台", state);
break;
case AppLifecycleState.paused:
UIUtil.log("页面状态后台", state);
break;
}
}
//当前系统改变了一些访问性活动的回调
@override
void didChangeAccessibilityFeatures() {
super.didChangeAccessibilityFeatures();
}
//低内存回调
@override
void didHaveMemoryPressure() {
super.didHaveMemoryPressure();
}
//用户本地设置变化时调用,如系统语言改变
@override
void didChangeLocales(List<Locale>? locales) {
super.didChangeLocales(locales);
}
//应用尺寸改变回调,例如旋转
@override
void didChangeMetrics() {
super.didChangeMetrics();
}
@override
Future<bool> didPopRoute() {
//return super.didPopRoute();
print('YM--------didPopRoute');//页面弹出
return Future.value(false);//true为拦截,false不拦截
}
@override
Future<bool> didPushRoute(String route) {
//return super.didPushRoute(route);
print('YM--------PushRoute'); //拦截push
return Future.value(false);
}
//平台主题改变时回调
@override
void didChangePlatformBrightness() {
super.didChangePlatformBrightness();
}