??目录
思考问题
1.为什么我们需要lifeCycle组件?Lifecycle的好处是什么
2.LifeCyclRegistry是怎么感知到生命周期状态(onCreate, onResume ..)的变化的回调的?
3.LifeCycleRegistry是如何把生命周期事件分发给LifeCycleObserver的?
一、版本
二、类图
三、流程
refer:
四、问题
五、总结
六、学习到了什么
七、参考
目录
思考问题
1.为什么我们需要lifeCycle组件?Lifecycle的好处是什么
【答】
LifeCycle组件是Android系统自带的可感知Activity和Fragment生命周期的组件,
LifeCycle的好处是可感知Activity和Fragment生命周期的组件,功能模块独立,与Activity,Fragment类进行解耦
2.LifeCyclRegistry是怎么感知到生命周期状态(onCreate, onResume ..)的变化的回调的?
【答】
在AppCompactActivity中有一个ReporFragment进行依赖注入,进行Activity组件的生命周期毁掉
3.LifeCycleRegistry是如何把生命周期事件分发给LifeCycleObserver的?
【答】
整体框架是通过观察者(LifeCycleObserver)和被观察者(LifeCycleRegistry)的观察者模式进行分发的。
1、ReportFragement进行Activity生命周期事件的分发给LifeCycleRegistry
2、LifeCycleRegistry通过内部的mObserverMap引用封装的观察者进行事件的再次分发
一、版本
implementation 'androidx.appcompat:appcompat:1.3.1'
二、类图
三、流程
refer:
https://juejin.im/post/5c7def0cf265da2d864b5c8b#comment
四、问题
五、总结
优点 | 1.使用了观察者模式,LifeCycleRegistry-被观察者,LifeCycleObserver-观察者搭建生命周期的分发 | | 2.使用了@OnLifecycleEvent注解,进行了观察者针对生命周期方法的回调 | | | | | | | 缺点 | 1.暂未支持底层Native的泄漏监听 |
六、学习到了什么
设计模式 | 观察者模式 | | | | | | | 设计 | 1.扩展功能时,考虑通过组合的方式进行实现。比如用ReportFragment进行生命周期的监听和分发 | | |
七、参考
掘金
|