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

时间:2021-7-21 作者:qvyue

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

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

class _AppLifecycleState extends State
    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();
  }
}
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。