Lifecycle与viewmodel,livedata的生命周期原理简析
一、UI的生命周期
-
Fragment
-
Service的生命周期Android Service生命周期浅析 - 简书
-
观察者模式
二、生命周期传递lifecycle 被观察者发生变化,观察者也会发生变化,观察者注册到被观察者的注册清单里面,livedata,viewmodel,lifecycle用到观察者模式
-
分析主要接口、类
-
生命周期的抽象类 Lifecycle:add/remove Observer,getState,Event/State内部枚举类
-
生命周期持有者,LifecycleOwner接口,getLifecycle
-
生命周期观察者,LifecycleObserver
-
-
Activity的生命周期lifecycle分析
-
fragment的lifecycle分析
FragmentManager.moveToState()-->FragmentStateManager.xxx()-->Fragment.preformXXX()-->mLifecycleRegistry.handleEvent
LifecycleRegistry
三、lifecycle与viewmodel、livedata作用机制
-
viewmodel
componentActivity:
getLifecycle.addObserver()-->ondestroy-->vmStore.clear-->vm.clear
-
liveData
lifecycleowner,
lifecycle-->LifecycleBoundObserver-->onStateChanged
setvaule-->dispatchingValue-->considerNotify-->onChanged
附:
activity 启动流程、Android 系统启动流程