Jetpack--Lifecycle使用介绍及源码分析
Posted 冬天的毛毛雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jetpack--Lifecycle使用介绍及源码分析相关的知识,希望对你有一定的参考价值。
介绍Jetpack:
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将生命周期的变化发送给监听者
最后
小编在网上收集了一些 android 开发相关的学习文档、面试题、Android 核心笔记等等文档,希望能帮助到大家学习提升,如有需要参考的可以直接去我 CodeChina地址:https://codechina.csdn.net/u012165769/Android-T3 访问查阅。
以上是关于Jetpack--Lifecycle使用介绍及源码分析的主要内容,如果未能解决你的问题,请参考以下文章