Lifecycle
Lifecycle
是Jetpack
架构中的一个组件,用来监听Activity
或Fragment
或View
的生命周期变化。
其主要包含LifecycleOwner
和LifecycleObserver
。
实现LifecycleObserver
自定义一个CustomLifecycleObserver
,用来观察LifeCycleOwner
的事件。
class CustomLifecycleObserver : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onStart() {
// 观察的lifecycleOwner触发ON_START时,会调用这个方法
}
}
实现LifeCycleOwner
自定义一个LifecycleActivity
来暴露自身的生命周期变化。
class LifecycleActivity : Activity(), LifecycleOwner {
private val mLifecycleRegistry by lazy {
LifecycleRegistry(this)
}
override fun getLifecycle(): Lifecycle {
return mLifecycleRegistry
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//关联 lifecycleObserver
mLifecycleRegistry.addObserver(CustomLifecycleObserver())
mLifecycleRegistry.currentState = Lifecycle.State.CREATED
}
override fun onStart() {
super.onStart()
mLifecycleRegistry.currentState = Lifecycle.State.STARTED
}
override fun onResume() {
super.onResume()
mLifecycleRegistry.currentState = Lifecycle.State.RESUMED
}
override fun onDestroy() {
mLifecycleRegistry.currentState = Lifecycle.State.DESTROYED
super.onDestroy()
}
}