Kotlin安卓实战之Lifecycle生命周期管理实现

简述

大多数Android Framework中的app组件都有自己的生命周期。这些生命周期由操作系统或者运行在你的进程中的框架代码所管理。它们是Android系统工作原理的核心,你必须遵守。否则就由可能会导致内存泄漏甚至崩溃

官方实现的Lifecycle 是一个持有组件(比如 activity 或者 fragment)生命周期状态信息的类,并且允许其它对象观察这个状态。主要使用两个枚举来跟踪相关组件的生命周期状态。很好的解决了某些组件在Activity生命周期状态变化后无法感知的问题。但是官方并没有独立成库供其他框架使用,只是存在官方的ViewModels、 LiveData框架中。

为了解决这个问题,我就从源码中将Lifecycle的实现拿了出来,并用kotlin语言重新封装了一遍,目前还没有实现依赖注入部分,只是实现了LifecycleObserver回调。

github 地址:https://github.com/Papeone/KLifecycle

使用方法


1. 将activity 继承自 LifecycleAppCompatActivity 类,作为被观察者者

class LifeMainActivity : LifecycleAppCompatActivity() {

        override fun onCreate(savedInstanceState: Bundle?) {

                super.onCreate(savedInstanceState)

               setContentView(R.layout.activity_life_main)

              // 添加观察者

              lifecycleRegistry.addObserver(TestLife())

        }

}

2. 创建观察者类 TestLife 实现 LifecycleObserver 接口 就可以监听 activity的生命周期变化了

class TestLife : LifecycleObserver {

         override fun onStateChanged(lifecycleOwner: LifecycleOwner, event: Lifecycle.Event) {

                 Log.d("TestLife", event.name)

           }

}

效果展示

总结

是时候用这种优雅的方式给Presenter添加生命周期管理了,还等什么,一个字就是干。