lifeCycle入门
2021-08-31 本文已影响0人
会写代码的小猿猴
lifecycle是一个生命周期监听的组件,具体用处就是比如你要在其他对象类里面获取某个activity的生命周期,例如MVVM中要在viewmodel中监听activity的生命周期,再例如MVP中需要在p里面监听activity生命周期。反正就是可以在其他类里面获取到activity的生命周期。
具体用法:
1、实现观察者类
创建一个类去实现LifecycleObserver接口
class LifecycleObserve1 (var context: Context): LifecycleObserver {
}
2、在该类里面使用@OnLifecycleEvent注解实现监听不同的生命周期,这里以监听onstart、onresume、onpause为例
class LifecycleObserve1 (var context: Context): LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onstartObserver() {
Log.d(context.toString(), "ON_START...")
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onresumeObserver() {
Log.d(context.toString(), "ON_RESUME...")
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun onpauseObserver() {
Log.d(context.toString(), "ON_PAUSE...")
}
}
3、在activity里面将该生命周期观察者类添加到activity的生命周期观察者列表
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
lifecycle.addObserver(LifecycleObserve1(this))
}
}
这个就是lifecycle的最基本的用法,如果你需要在viewmodel类里面获取activity生命周期,那你的view1model类除了继承ViewModel外,还需要实现LifecycleObserver 接口
就是简单Mark一下,对自己要求也是停留在会用就行,想具体了解源码的朋友可以去看看其他文章,很多大神都解析过它的源码