flutter开发实战-WidgetsBinding监听页面前台后台退出状态

这篇具有很好参考价值的文章主要介绍了flutter开发实战-WidgetsBinding监听页面前台后台退出状态。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

flutter开发实战-WidgetsBinding监听页面前台后台退出状态

在开发过程中,经常监听页面前台后台退出状态,这里用到了WidgetsBinding

一、WidgetsBinding是什么?

WidgetsBinding是Flutter中最重要的Binding之一,它提供了与Widget树的交互。在Flutter中,所有的UI都是Widget,从最简单的文本到最复杂的布局,都可以通过Widget树来描述。WidgetsBinding负责处理用户输入事件、布局和绘制。它还处理与系统交互的平台通道,如调用原生代码和处理通知。WidgetsBinding提供了一些常用的方法,如addPostFrameCallback、deferredUnmount、getRendererBinding等。

二、监听页面前台后台退出状态

WidgetsBinding监听页面前台后台退出状态,我们需要在Widget中添加

with WidgetsBindingObserver

在initState中加入观察者

 WidgetsBinding.instance?.addObserver(this);

在dispose中移除观察者

 WidgetsBinding.instance?.removeObserver(this);

之后通过响应的方法didChangeAppLifecycleState来监听页面前台后台退出状态

// WidgetBinding
  ///生命周期变化时回调
  //  resumed:应用可见并可响应用户操作
  //  inactive:用户可见,但不可响应用户操作
  //  paused:已经暂停了,用户不可见、不可操作
  //  suspending:应用被挂起,此状态IOS永远不会回调
  
  void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);
    switch (state) {
      case AppLifecycleState.inactive:
        {
          // 处于这种状态的应用程序应该假设它们可能在任何时候暂停。
          break;
        }
      case AppLifecycleState.resumed:
        {
          // 应用程序可见,前台
          if (_isAppBackground == true) {
            setState(() {});

            _isAppBackground = false;
          }

          break;
        }
      case AppLifecycleState.paused:
        {
          // 应用程序不可见,后台
          _isAppBackground = true;
          break;
        }
      case AppLifecycleState.detached:
        {
          // 页面退出
          break;
        }
    }
  }

  ///当前系统改变了一些访问性活动的回调
  
  void didChangeAccessibilityFeatures() {
    super.didChangeAccessibilityFeatures();
  }

  /// Called when the system is running low on memory.
  ///低内存回调
  
  void didHaveMemoryPressure() {
    super.didHaveMemoryPressure();
  }

  /// Called when the application's dimensions change. For example,
  /// when a phone is rotated.
  ///应用尺寸改变时回调,例如旋转
  
  void didChangeMetrics() {
    super.didChangeMetrics();
  }

  /// {@macro on_platform_brightness_change}
  
  void didChangePlatformBrightness() {
    super.didChangePlatformBrightness();
  }

  ///文字系数变化
  
  void didChangeTextScaleFactor() {
    super.didChangeTextScaleFactor();
  }

三、小结

flutter开发实战-WidgetsBinding监听页面前台后台退出状态。

https://blog.csdn.net/gloryFlow/article/details/132253284
学习记录,每天不停进步。文章来源地址https://www.toymoban.com/news/detail-644477.html

到了这里,关于flutter开发实战-WidgetsBinding监听页面前台后台退出状态的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux进程前台启动与后台启动详解

    1、进程的前台启动与后台启动 在Shell命令行中输入并执行某条命令,会启动一个相应的进程。默认情况下,我们所启动的进程属于前台进程,前台进程会将执行过程中产生的相关信息显示在终端上, 并且在进程的执行过程中会占据当前终端。如果进程没有结束, 则用户不能

    2024年02月06日
    浏览(39)
  • 前端将file文件传给后台,后台将文件传给前台(包含上传下载)

    在开发过程中,经常会遇见对文件的处理。 例如:在上传、下载文件时,需要在前端选完文件传到后台传到服务器;或者文件从后台,经过特定需求的处理在返回给前台。 中间处理过程各种各样,但有两个过程是固定的 前端传给后台 后台返回给前端 经常用到的上传就是对

    2024年02月11日
    浏览(54)
  • SpringBoot微信小程序商城源码(前台+后台)

    🍓🍓 文末获取联系 🍓🍓 产品介绍   本产品用java技术开发的小程序前后台源码代码和视频开发教程。   产品主要包含一套Spring Boot小程序商城代码和一套小程序开发全栈实战项目视频课程。 小程序商城源代码介绍:   系统由:Spring Boot后端API,web管理后台 和 微信小

    2024年02月10日
    浏览(89)
  • 【仿网易云H5部署】Nodejs后台 + uniapp前台 部署

    之前在b站跟着学习写了前锋的仿网易云音乐uniapp项目 , 在这里记录一下H5版本的部署上线的过程. 这是该项目的b站链接:【千锋教育】前端项目_uni-app入门到实战项目之《仿网易云音乐》_哔哩哔哩_bilibili 使用宝塔面板来部署 连接成功之后, 输入刚刚复制的脚本安装宝塔面板.安

    2024年01月25日
    浏览(36)
  • 织梦DEDE后台更新了广告而前台没有变化的解决办法

    很多朋友在后台修改了广告代码之后,而前台的广告并没有发生变化,这个原因就是缓存问题了. 适合新手的解决方法: 如果你修改了广告代码之后,然后我们找到右侧的管理,管理下面有3个选项,[JS] [更改] [删除] ,这3个,这时我们只需要点下JS,这里就是预览这个JS广告

    2024年02月02日
    浏览(48)
  • Android入门教程 | 四大组件之Service(前台服务,后台服务)

    Service是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可在后台处理网络事务、播放

    2024年02月05日
    浏览(56)
  • Ecshop支付宝前台付款而后台不显示已付款的解决方法

    本文实例讲述了Ecshop支付宝前台付款而后台不显示已付款的解决方法。分享给大家供大家参考,具体如下: 客户最近反映在支付宝付款之后,后台订单却显示未付款,着实让ecshop商家很头疼,现在ECSHOP开发中心总结下如何处理这样的问题. 网站根目录下respond.php,在文件中搜索:

    2023年04月23日
    浏览(40)
  • 从一道面试题来学习前台进程和后台进程、孤儿进程和僵尸进程

    以前面试,面试官问了一个问题,大意是: 我们在终端中,通过执行 python main.py 命令,会启动一台前台进程直到程序结束。现在我还是想通过执行 python main.py ,启动一个后台进程,让后台进程运行我们的业务逻辑。这个时候应该怎么做呢? 回答上面这道题,需要先了解什么

    2023年04月17日
    浏览(34)
  • 前台测试转后台优化历险记,应届生薪资8K逆袭,从此扶摇直上九万里!

    优橙教育每一期都会有不少从前台测试转到后台的小伙伴应邀而来,其实每个人的经历都是大致相同的,这时候肯定会有很多小伙伴问,为什么出来花钱出来参加培训而不是在项目上转呢? 或许是因为在项目上摸爬滚打太久了,吃不下领导画的大饼了;也或许是因为确实整天

    2024年02月13日
    浏览(51)
  • 川西旅游网系统-前后端分离(前台vue 后台element UI,后端servlet)

    前台:tour_forword: 川西旅游网前端----前台 (gitee.com) 后台:tour_back: 川西旅游网-------后台 (gitee.com) 后端 :tour: 川西旅游网------后端 (gitee.com)

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包