美文网首页Android
lifeCycle入门

lifeCycle入门

作者: 会写代码的小猿猴 | 来源:发表于2021-08-31 10:37 被阅读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一下,对自己要求也是停留在会用就行,想具体了解源码的朋友可以去看看其他文章,很多大神都解析过它的源码

    相关文章

      网友评论

        本文标题:lifeCycle入门

        本文链接:https://www.haomeiwen.com/subject/orpbiltx.html