Flutter 监听前台和后台切换的状态

本文介绍了如何在Flutter中使用WidgetsBindingObserver监控应用程序的生命周期状态变化,包括初始化时添加监听、销毁时移除监听,以及对不同AppLifecycleState的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 前后台的切换状态监听

混入 WidgetsBindingObserver 这个类,这里提供提供了程序状态的一些监听

二 添加监听和销毁监听

  @override
  void initState() {
    super.initState();
 
    //2.页面初始化的时候,添加一个状态的监听者
    WidgetsBinding.instance.addObserver(this);
  }
  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    //3. 页面销毁时,移出监听者
    WidgetsBinding.instance.removeObserver(this);
  }

三  监听方法

@override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    // TODO: implement didChangeAppLifecycleState
    super.didChangeAppLifecycleState(state);
    switch (state) {
      //进入应用时候不会触发该状态 应用程序处于可见状态,并且可以响应用户的输入事件。它相当于 Android 中Activity的onResume
      case AppLifecycleState.resumed:
        print("应用进入前台======");
        // 在这里进行判断
        break;
      //应用状态处于闲置状态,并且没有用户的输入事件,
      // 注意:这个状态切换到 前后台 会触发,所以流程应该是先冻结窗口,然后停止UI
      case AppLifecycleState.inactive:
        print("应用处于闲置状态,这种状态的应用应该假设他们可能在任何时候暂停 切换到后台会触发======");
        break;
      //当前页面即将退出
      case AppLifecycleState.detached:
        print("当前页面即将退出======");
        break;
      // 应用程序处于不可见状态
      case AppLifecycleState.paused:
        print("应用处于不可见状态 后台======");
        break;
    }
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值