一 :使用
image.png
image.png
image.png
Activity 已经实现 LifecycleOwner , 观察者 比如 Presenter 需要实现 LifecycleObserver , 当 Activity 生命周期发生变化,则会通知到 观察者
二:原理
image.png
LifecycleRegistry 包含 当前 Activity 以及 observerMap<Observer , ObserverWithState> , ObserverWithState 包含 LifecycleObserver (presenter)里包含 @LifecycleEvent 注解的方法
当 Activity onCreate 的时候 绑定了一个 Fragment , 当 Fragment 生命周期回调时 , 会调用 LifecycleOwner (Activity )的方法, 从而反射调用 ObserverWithState 的方法
image.png
image.png
接上图右边
image.png