上文,我们首先一个简单的实际代码例子入手,开始说明lifecycle被引入的背景,进而我们使用lifecycle实现了简单的需求,本文,我们一起对Lifecycle的自我实现以及源码进行深入探索。
1.自我实现Lifecycle框架
还是三板斧,知道了怎么去用?那么用我们自己的知识体系,不妨先猜一下这个如何做的?用自己所学所想的已有知识,试着去实现这样的一个框架。然后再去看lifecycle的源码中的逻辑,是否如我们所想。
首先梳理一下,有哪些技术难点或者要点要去解决?
1)如何监听fragment、activity等生命周期呢?
2)如何通知观察者,相应的生命周期事件呢?
猜想实现的中心思想:.应该是基于观察者设计模式,想要监听的控件,例如activity、fragment、service等是被观察者,然后这些控件进入相应的函数的时候,通过接口通知观察者。
实现的逻辑:
1)定义监听通知接口
2)被观察者中,进行注册函数的编写实现
3)被观察者中,在相应的生命周期函数中,调用观察者对应的监听回调接口
4)外界调用,监听回调,在里面做相应的业务逻辑
1.1 定义通知接口
按照标准观察者模式设计思想,首先要定义通知接口