Flutterflutter的调试

Flutter App 的生命周期

2019-07-10  本文已影响0人  向上_d821

AppLifecycleState 就是 App 的生命周期,有:

怎么判断 Flutter 是在前台还是在后台,就需要使用到 WidgetsBindingObserver 了
class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
   // initState 里添加监听
   @override
  void initState(){
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }
//dispose 里移除监听
 @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    WidgetsBinding.instance.removeObserver(this);
  }
   //重写didChangeAppLifecycleState
  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);
    switch(state){
        case AppLifecycleState.resumed:
        print(AppLifecycleState.resumed);
        break;
      case AppLifecycleState.inactive:
        print(AppLifecycleState.inactive);
        break;
      case AppLifecycleState.paused:
        print(AppLifecycleState.paused);
        break;
      case AppLifecycleState.suspending:
        print(AppLifecycleState.suspending);
        break;
    }
  }
}

app由可见显示切换到后台(home状态)

07-10 15:11:10.062 19005-19561/com.example.flutterapp I/flutter: AppLifecycleState.inactive
07-10 15:11:10.524 19005-19561/com.example.flutterapp I/flutter: AppLifecycleState.paused

app由后台切回前台(用户可见)

07-10 15:11:54.836 19005-19561/com.example.flutterapp I/flutter: AppLifecycleState.inactive
07-10 15:11:54.837 19005-19561/com.example.flutterapp I/flutter: AppLifecycleState.resumed

注意:第一次运行APP时候是不走这些生命周期方法的

上一篇 下一篇

猜你喜欢

热点阅读