Android

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一下,对自己要求也是停留在会用就行,想具体了解源码的朋友可以去看看其他文章,很多大神都解析过它的源码

上一篇下一篇

猜你喜欢

热点阅读