关于flutter生命周期WidgetsBindingObserver方法didChangeAppLifecycleState 无效的问题

如下代码:

class _HomePageState extends State 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的页面从后台切换到前台进程才会触发。

 

关于flutter生命周期WidgetsBindingObserver方法didChangeAppLifecycleState 无效的问题_第1张图片

 

注意:在锁屏和解屏都会触发didChangeAppLifecycleState,会照成不断调用该方法,可能会照成某些业务场景bug。

你可能感兴趣的:(flutter)