lifecycle会使用一个空白fragment监听生命周期
监听到生命周期分发出去
爷爷类实现lifecycleower
生命周期管理是只有5个,onresume后会倒退,走状态不同生命周期也不同
生命周期不对齐就分发
使用的是观察者模式观察生命周期
使用map保存反射的内容,等待使用时激活
callback info = new callbackinfo(handleeven)
mcallbackmap.put(class,info)
method.put(class,info)
class对象只能有一个
首先在Activity的父Fragment里onCreate里
ReportFragment.injectIfNeededIn(this);
这段抄了Gradle的源码,用一个空白的Fragment来监听onStart,一个无UI的Fragment
能够监听生命周期
那为什么不在Activity里写这种写法,用Fragment来封装Activity,如果其他Activity也想使用这种覆盖上去即可
最重要的分发方法,Activity的父类实现的是
LifecycleOwner接口
这也就是为什么licycle还有倒退流程
接下来看几个状态的切换流程
如何将流程前进的?
downEvent每次会向前或者向后移动一位不停循环
接下来,如果状态对齐就同步状态,如果状态同步就返回
eume.compareTo (枚举类型比大小)通过枚举大小来判断是向前还是向后
那么这个mObserverMap是什么?
它内部存放的就是我们的观察者
也就是说,当我们观察者生命周期小的时候就前进,大的时候便后退
在add方法中,刚进入就会发起一次分发
那么如何分发?
addObserver
在进入时候进行循环分发
拿到观察者的.class的文件,准备后期用反射
大部分系统源码都会用MAP存储,提高性能