flutter 队列阻塞(flutter 消息队列)

网友投稿 1681 2022-12-24

本篇文章给大家谈谈flutter 队列阻塞,以及flutter 消息队列对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享flutter 队列阻塞的知识,其中也会对flutter 消息队列进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

flutter实践 - flutter中的生命周期

与iOS的ViewController、Android的Activity一样,Flutter中的Widget也存在生命周期,并且通过State来提现。而App则是一个特殊的Widget,除了需要处理视图显示的各个阶段,还需要应对应用从启动到退出所经历的各个状态。

State的生命周期,指的是在用户参与的情况查下,其关联的Widget所经历的从创建到显示再到更新最后到停止,直至销毁的各个过程阶段。
这些不同的阶段涉及到的特定的任务处理,正确理解State的生命周期至关重要,State的生命周期流程图图,如下所示:

从图中可以看到,State的生命周期可以分为3个阶段:创建、更新、销毁。下面将介绍每一个阶段的具体流程

State初始化时会依次执行:构造方法 - initState - didChangeDependencies - build,随后完成页面渲染

Widget的状态更新,主要由3个方法触发:setState、didChangeDependencies与didUpdateWidget。

一旦这三个方法被调用,Flutter就回销毁旧的Widget,并调用build方法重建Widget

组件销毁相对比较简单,组件被移除,或者页面销毁的时候,系统会调用deactivate和dispose这两个方法来移除或销毁组件

下面这张表格也可以帮助我们理解记忆这些调用实际

视图的生命周期,定义了视图的加载到构建的全过程,其回调机制能够确保我们可以更具视图的状态选择合适的时间做恰当的事情,而App的生命周期,则定义了App从启动到退出的全过程
在原生Android、iOS开发中,有时我们需要再对应的App生命周期事件中做相应的处理,比如App从后台进入前台,从前台退出后台,或者在UI绘制完成后做一些处理。
这样的需求,在原生开发中,可以通过重写Activity、ViewController生命周期回调方法,或者是注册应用程序的相关通知来兼容App的生命周期并做相应的处理。而在Flutter中,我们可以利用WidgetsBindingObserver类,来实现同样的需求。
下面我们看看WidgetsBindingObserver中具体有哪些回调函数:

didChangeAppLifecycleState回调函数中,有一个参数类型为AppLifecycleState的枚举类型,这个枚举类型是Flutter对App生命周期状态的封装,它的常用状态包括:

可以将App切前后台,控制台输出的App状态,可以发现:

我们可以通过下面的这张图直观的了解状态切换过程

除了需要监听App的生命周期回调做相应处理外,根据不同的需求,我们需要再组件宣讲之后做一些与显示安全相关的操作,在iOS中,可以通过GCD的方法,让操作在下一个RunLoop执行,在Android中,可以通过View.post()插入消息队列,来保证在组件渲染后进行相关操作。在Flutter中实现同样的需求会更简单:使用WidgetsBinding来实现即可
WidgetsBinding提供了单词Frame绘制回调和实时Frame绘制回调两种机制来满足不同的需求场景:

做混合的话Uniapp和Flutter我应该学哪个啊?

Uniapp目前比较成熟,而且用的是Vue语法,学习成本比较低,而且行业里面用的也比较广泛,而Flutter的话,学习成本略高,因为要学习新的语言,还有就是目前生态不是特别完备,等他再发展发展吧。黑马程序员官网有成套免费视频哦,有什么不懂的可以直接过去学习。您的采纳是对我成长的鞭策

flutter中compute和isolate

dart 中的 isolate 比较重量级, Isolate 和 UI 线程传输比较复杂, flutter 在 foundation 中封装了一个轻量级的 compute 操作。

- isolate 的使用:

1、创建指定个数的isolate

2、使用

每个isolate中执行顺序:
每次执行前先微任务队列判断有没有要处理,没有微任务再在event队列执行一个event任务,单个event任务处理完之后,再从头遍历微任务队列是否有新的微任务。

微任务包括:

创建微任务:

Flutter 事件机制 - Future 和 MicroTask 全解析
flutter之-dart多线程isolate(二)

关于flutter 队列阻塞和flutter 消息队列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 flutter 队列阻塞的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于flutter 消息队列、flutter 队列阻塞的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:智能车载终端下载(智能汽车下载)
下一篇:MyBatis延迟加载与立即加载案例教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~