美文网首页
Flutter 学习日记(八)--应用维度的生命周期

Flutter 学习日记(八)--应用维度的生命周期

作者: jeffrey12138 | 来源:发表于2021-05-07 09:54 被阅读0次

原本想昨天一起发上来的,后来发现,现在简书限制了每天发的文章篇数,这是为啥?别说了,上代码吧!!!

///如何获取Flutter应用维度生命周期
///WidgetsBindingObserver:是一个Widgets绑定观察器,通过它我们可以监听应用的生命周期/语言等
class AppLifecycle extends StatefulWidget {
  @override
  _AppLifecycleState createState() => _AppLifecycleState();
}

class _AppLifecycleState extends State<AppLifecycle>
    with WidgetsBindingObserver {
  @override
  void initState() {
    //添加生命周期监听器
    WidgetsBinding.instance.addObserver(this);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter应用的生命周期'),
        leading: BackButton(),
      ),
      body: Container(
        child: Text("Flutter应用的生命周期"),
      ),
    );
  }

  //添加WidgetsBinding.instance.addObserver(this)之后,当生命周期发生变化之后就会回调这个方法
  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);
    print('$state');
    if(state==AppLifecycleState.paused){
      //当app进入后台
      print('app进入后台');
    }else if(state==AppLifecycleState.resumed){
      print('app进去前台');
    }else if(state==AppLifecycleState.inactive){
      //不常用:应用程序处于非活动状态,并且未接收到用户输入时调用,比如:来了个电话
    }else if(state==AppLifecycleState.detached){}
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }
}

相关文章

网友评论

      本文标题:Flutter 学习日记(八)--应用维度的生命周期

      本文链接:https://www.haomeiwen.com/subject/gbwfdltx.html