在Android中,可以覆盖Activity的方法来捕获Activity的生命周期回调。在Flutter中可以通过挂接到WidgetsBinding观察并监听didChangeAppLifecycleState更改事件来监听生命周期事件。

class LifecycleWatcher extends StatefulWidget {       @override  _LifecycleWatchState createState() => _LifecycleWatchState();}class _LifecycleWatchState extends State<LifecycleWatcher>    with WidgetsBindingObserver {         // 记录生使命周期状态  AppLifecycleState _lastLifecyleState;  @override  void initState() {      // 初始化时调用    super.initState();    WidgetsBinding.instance.addObserver(this);  }  @override  void dispose() {      // 页面被关闭时    WidgetsBinding.instance.removeObserver(this);    super.dispose();  }  @override  void didChangeAppLifecycleState(AppLifecycleState state) {      // 监听生命周期的变化    setState(() {      // 更新生命状态,触发build方法的调用      _lastLifecyleState = state;    });  }  @override  Widget build(BuildContext context) {       // 根据AppLifecycleState的生命周期状态做相应的处理    if (_lastLifecyleState == null)      return new Text('This widget has not observed any lifecycle changes.',          textDirection: TextDirection.ltr);    return new Text(        'The most recent lifecycle state this widget observed was: $_lastLifecyleState.',        textDirection: TextDirection.ltr);  }}

AppLifecycleState的生命状态:

  • resumed - 应用程序可见并响应用户输入。这是来自Android的onResume
  • inactive - 应用程序处于非活动状态,并且未接收用户输入。此事件在Android上未使用,仅适用于iOS
  • paused - 应用程序当前对用户不可见,不响应用户输入,并在后台运行。这是来自Android的暂停
  • detached - 该应用程序将暂时中止。

更多相关文章

  1. Android广播接实现电话的监听(电话的状态,拦截)
  2. 16 个Android(安卓)开发者必备工具资源
  3. ANDROID – 使用特定的URL开启应用程序
  4. Android(安卓)- 设定更改主Activity
  5. Android(安卓)SystemUI状态栏添加图标
  6. android 监听USB连接状态
  7. Android(安卓)显示、隐藏状态栏和导航栏
  8. ActivityGroup + ViewPager 实现可滑动的底部Tab
  9. [学习记录]android 状态栏背景修改为透明

随机推荐

  1. android中webviewjs与java的相互调用
  2. Android隐藏标题栏的四种方法
  3. Android 电源系列小结s
  4. Android单词查找器
  5. Android 显示/隐藏 应用图标
  6. Android(Java):滑动删除实现——重写onTo
  7. 关于Android调用系统Action录制视频
  8. Android数据存储路径位置
  9. android客户端加密代码
  10. Android:设置APN为cmnet源码 ----android