介绍Jetpack:
- Google在18年10月到19年提出的,旨在提高安卓程序员在开发应用时的一些体验问题。
- 像iOS一样,在他们的编程世界里,他们的语言是统一的,架构是统一的,工作流也是统一的
Lifecycle:
Lifecycle有什么用?
- 是为activity和fragment的生命周期做了一个很好的工具,去观测这些生命周期
- 让观测生命周期的代码不用写到activity里面了,避免过多的代码量和耦合性
Lifecycle是什么?
- 从源码里拷出来,去掉注释,就剩下Lifecycle的抽象类,发现他是一个观察者
- 首先,了解事物的本质
Lifecycle怎么用?
- 写代码体验一下
- 新建项目,添加第一张图右边的依赖,如果是kotlin注意要加kapt
- 新建观察者
- 其实可以直接实现他的父类,他的父类不要实现任何方法,而且这个方法对我们当前没有用
- 我们想要观察activity生命周期需要怎么做呢?
- 我们需要编写一个方法,方法名随意
- 绑定activity
- activity实现了Lifecycle接口,接口中有一个方法获取Lifecycle,调用他,获取lifecycle,然后绑定观察者
过一下源码
- 先看在activity里面是怎么实现的?
- ComponentActivity实现了LifecycleOwner接口,
- 提供一个getLifecycle的方法
- 这个方法返回的是LifecycleRegistry(注册者、登记者)
- LifecycleRegistry就是一个Lifecycle
- 同样有他的add,remove方法
- 他是怎么感应activity的周期的呢?然后调用setState,setCurrentState方法的呢?
- 在他的ComponentActivity的onCreat里面找这个东西
- 他们在包里面是平级的,肯定有关系
- ReportFragment是一个Fragment
- 他把自己注入到了activity中,activity里面的fragment当然也会跟随activity同步他的生命周期
- 然后在什么周期中dispatch
- dispatch将消息传递到Lifecycle
- 所以Lifecycle实际是通过
- 创建一个Fragment
- 将Fragment注入到被绑定的Activity里面
- 通过Fragment将生命周期的变化发送给监听者
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END