11 | 提到生命周期,我们是在说什么?
11 | 提到生命周期,我们是在说什么?
讲述:陈航
时长12:53大小11.80M
State 生命周期
创建
更新
销毁
App 生命周期
生命周期回调
帧绘制回调
总结
思考题
赞 5
提建议
精选留言(35)
- 张简2019-07-2342节和43节其实可以提前讲讲,大多数开发者都是这种混合接入方式,和具体开发无关。首先遇到的就是混合接入问题。共 1 条评论25
- 许童童2019-07-23在构造函数中Widget还未生成,所以只能做一些参数传入的处理,initState中可以做初始化State的变量的操作。
作者回复: 赞
23 - 这得从我捡到一个鼠标...2019-08-26实际上打印监听的时候发现并不是文中所描述的那样。 从前台退居后台的时候执行inactive->paused 从后台进入前台的时候执行inactive->resumed paused和resumed不会同时执行,是不是文中有错? AppLifecycleState
作者回复: 你理解错了,我来帮你梳理下: 1.从前台退居后台,打印的是inactive->paused,但你忘了它之前的状态是resumed; 2.从后台进入前台,打印的是inactive->resumed,但你忘了它之前的状态是paused
共 3 条评论17 - jia589602019-07-24为啥navigator.push()之后当前的widget deactivate了还要build一次?对老师给的工程代码验证了确实是这样,还请老师解释下
作者回复: 因为State在视图树的相对位置变了
共 4 条评论9 - Geek_b095412019-07-24大牛,你好,我想买一本关于flutter的工具书,麻烦推荐一本
作者回复: 不推荐买书,如果想要快速了解一些核心Feature可以看看 官方的cookbook: https://flutter.dev/docs/cookbook和wendux写的Flutter实战:https://book.flutterchina.club/
共 2 条评论9 - dranni2020-01-14App 生命周期中有没有类似 Android Application.onCreate() 的回调,在这里做App初始化的一些操作。或者 APP 初始化的操作应该放在哪里?共 1 条评论5
- 离尘不离人คิดถึ...2019-10-15`width WidgetsBindingObserver` 这里没看懂, 明明用的是 with `WidgetsBindingObserver`,但是代码却使用的是 `WidgetsBinding`,查看源码,发现 `WidgetsBindingObserver` 只是 `binding.dart` 里面的一个抽象类;老师这里能解答下吗
作者回复: WidgetsBinding是一个连接上层Widget回调与底层Flutter引擎实现的一个抽象胶水类,在不同的平台有不同的实现(比如在单元测试中是TestWidgetsFlutterBinding,在UI开发中是WidgetsFlutterBinding),所以我们需要在代码中用WidgetsBinding.instance获取特定的实例,而WidgetsBindingObserver只是一个接口而已
共 2 条评论4 - 知2020-09-10flutter1.14.7 之后,使用Navigator.push()时,当前的widget已经不会再调deactivate()和build()了,从上一个页面回来时,也都不会调用。共 3 条评论5
- 许童童2019-07-23老师你好,为什么项目启动时Resolving dependencies和Running Gradle task 'assembleDebug'阶段要很长的时间,大概2分钟。有什么办法可以加快速度吗?
作者回复: Gradle默认每次编译都会resolve dependencies,每次都会去进行网络请求。如果你那边访问jCenter很慢,这个步骤就卡住了。 你可以临时在Project Preferences的Gradle那里启用Offline work,不过新增依赖之后你需要在把这个设置改回来
4 - Geek_60d7a72019-07-24关于dart的mixin,老师能讲讲么,尤其是mixin on,看了好多资料都还不是很清晰…
作者回复: Mixin就是以非继承的方式实现代码复用的一种机制而已呀
共 2 条评论3 - Geek_24cc072021-02-18push到下一个页面,为啥当前页面调用了 deactivate 后,还要调用build?共 1 条评论1
- 偷心人2020-03-28今天试了一下生命周期的监测 with WidgetsBindingObserver 发现从后台到前台 只有AppLifecycleState.paused->AppLifecycleState.resumed 前台到后台AppLifecycleState.resumed->AppLifecycleState.inactive->AppLifecycleState.paused 环境 Flutter (Channel master, v1.16.3-pre.30, on Mac OS X 10.15.3 19D76, locale zh-Hans-CN)展开共 3 条评论1
- 承香墨影2019-11-15您好,有问题请教。 AppLifecycleState 中还有一个 suspending 的状态,这个状态表示什么意义?会在什么场景下触发?
作者回复: 表示程序被暂时挂起,这是操作系统底层暴露的状态,不是所有的平台都有(比如iOS就没有),所以这个状态可以理解成基本没用
2 - Carlo2019-10-09除了需要监听 App 的生命周期回调做相应的处理之外,有时候我们还需要在组件渲染之后做一些与显示安全相关的操作。 能具体解释一下这个是什么意思么?比如说什么是显示安全相关的操作?
作者回复: 比如你要等界面上的某个元素出现之后,才认为视图渲染完成,就可以用这个机制。具体可以参考40节分享
共 2 条评论2 - 咖啡凉了2019-08-26在iOS中,我们会用到viewWillAppear中实现方法刷新上一个页面的数据。Flutter中有类似的生命周期吗,怎么解决子页面数据提交后,返回到上一个页面刷新视图
作者回复: 参考21节“路由与导航”里面提到的页面关闭参数
共 2 条评论1 - Geek_763c442021-03-09flutter有没有类似android的Log.e("","")的方法,这样可以分级和根据键打印日志
- 老花2020-10-23请问一下老师,现在使用flutter进行开发app,接入微信登录,QQ登录,微信支付,支付宝支付,QQ支付等功能,目前支持吗?比较担心这个问题,正在学习中,后续因为需要用到这些。共 2 条评论
- 卡洛斯(๑Ő௰Ő๑)2020-10-21大佬你好,有组件可见的声明周期吗?另外 didChangeDependencies 具体是什么场景导致依赖变化的呢?
- 许先森2020-09-14State内部的widget对象,在State的构造函数中是null,所以不可以在State构造函数中使用widget对象属性,在initState中可以。
- 蹦哒2020-08-01老师请问:iOS中每一帧都对应着一次runloop的执行,对应Flutter就是每一帧会执行一次addPostFrameCallback回调,是这样的吗?