我希望我能正确理解didChangeAppLifecycleState
的工作原理。
我有A页面和B页面。当我从B页面点击返回设备按钮(Navigator.of(context).pop();
)时,我期望在A页面中didChangeAppLifecycleState
会被调用,但实际上并没有。
PageA
class _ABCState extends State<ABCrList> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
....
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
setState(() {
print(...);
});
}else{
print(state.toString());
}
}
....
这是页面A中的initState
。该函数用于调用后端服务。
@override
void initState() {
super.initState();
_bloc.getList(context); // return list and populate to ListView
});
}
PageA
中使用Navigator.push().then(_)
。 - CopsOnRoadNavigator.pop(true)
,在PageA
中,您可以获取它的值,该值在上面的代码中表示为_
。 - CopsOnRoadgetList
函数会在页面第一次加载时被调用。当从页面B返回时,我该如何再次调用这个函数呢? - Tony