如下代碼:
class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
debugPrint('initState');
}
@override
Future didChangeAppLifecycleState(AppLifecycleState state) async {
super.didChangeAppLifecycleState(state);
print("lifeChanged $state");
}
@override
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);//銷燬
}
}
發現從A頁面切換到B頁面並不會觸發didChangeAppLifecycleState()方法。
結果發現didChangeAppLifecycleState管理的生命並不是像Android那樣頁面切換的生命週期,而是監聽點擊home、或者物理返回鍵,將app的頁面從後臺切換到前臺進程纔會觸發。