Lifecycle简单使用方法。

Lifecycle的组件作用就是解耦Activity的生命周期,没当Activity的生命周期改变之后通知Lifecycle观察者。

第一,导入Lifecycle依赖

implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.1")

第二,建立一个观察者,实现DefaultLifecycleObserver接口

重写DefaultLifecycleObserver的生命周期函数,比如我们要观察Activity的onStart、onStop周期函数,那么就重写这两个函数。

import android.util.Log
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner

class TestModel(var names:String):DefaultLifecycleObserver {

    lateinit var name:String

    init{
        this.name = names
    }

    override fun onStart(owner: LifecycleOwner) {
        Log.e("Xiang","执行了start $name")
    }

    override fun onStop(owner: LifecycleOwner) {
        Log.e("Xiang","执行了stop $name")
    }


}

第三,绑定到Activity去。

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //添加观察者
        lifecycle.addObserver(TestModel("kt"))
        setContent {
            Text(text = "hi Android")
        }
    }
}
  • 当MainActivity 这个Activity的生命周期发生变化之后,我们可以在观察者TestModel中同步对应的方法。