ONV*_*ETI 13

- 生命周期事件观察者

首先

你应该实现这个:

dependencies {
    implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
}
Run Code Online (Sandbox Code Playgroud)

第二

你应该这样写:

class App : Application() {
    override fun onCreate() {
        super.onCreate()

        ProcessLifecycleOwner.get().lifecycle.addObserver(lifecycleEventObserver)

    }
Run Code Online (Sandbox Code Playgroud)

第三

你应该这样写:
这里我只实现了两个Lifecycle Event,当你需要其他Lifecycle Event时,你应该实现它们

    var lifecycleEventObserver = LifecycleEventObserver { _, event ->
        when (event) {
            Lifecycle.Event.ON_STOP -> {
                //your code here
            }
            Lifecycle.Event.ON_START -> {
                //your code here
            }
            else -> {}
        }
    }
Run Code Online (Sandbox Code Playgroud)

- 默认生命周期观察者

首先

你应该实现这个:

dependencies {
    implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
}
Run Code Online (Sandbox Code Playgroud)

第二

你应该这样写:

class App : Application() {
    override fun onCreate() {
        super.onCreate()

        ProcessLifecycleOwner.get().lifecycle.addObserver(defaultLifecycleObserver)

    }
Run Code Online (Sandbox Code Playgroud)

第三

你应该这样写:
这里我只实现了两个Lifecycle Event,当你需要其他Lifecycle Event时,你应该实现它们

    var defaultLifecycleObserver = object : DefaultLifecycleObserver {

        override fun onStart(owner: LifecycleOwner) {
            super.onStart(owner)
            //your code here
        }

        override fun onStop(owner: LifecycleOwner) {
            super.onStop(owner)
            //your code here
        }
    }
Run Code Online (Sandbox Code Playgroud)