【Jetpack】Lifecycle之监听LifecycleObserver

关于LifecycleEventObserver

Lifecycle可以添加观察者,从而让其它工作与周期变化保持一致

比如我们希望Dialog和Activity的生命周期一致,能够在Activity结束时自动关闭

可以通过如下代码来实现

与Lifecycle同步的Dialog
kotlin 复制代码
package com.android.code

import android.app.Dialog
import androidx.activity.ComponentActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner

class LifecycleDialog(
    private val activity: ComponentActivity
) : Dialog(activity), LifecycleEventObserver {

    init {
        activity.lifecycle.addObserver(this)
    }

    override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
        if (event == Lifecycle.Event.ON_DESTROY && isShowing) dismiss()
    }
}
相关推荐
G皮T1 个月前
【设计模式】行为型模式(一):模板方法模式、观察者模式
java·观察者模式·设计模式·模板方法模式·template method·行为型模式·observer
Amd7947 个月前
Vue3使用Composition API实现响应式
vue3·watch·reactive·refs·lifecycle·debugging·composition
锦天9 个月前
安卓 Android Activity 生命周期
android·生命周期·lifecycle·oncreate·ondestroy·onstart·onstop
飞鸽FlyGo1 年前
【设计模式-06】Observer观察者模式
java·观察者模式·设计模式·observer
玄德公笔记1 年前
《golang设计模式》第三部分·行为型模式-07-观察者模式(Observer)/发布者—订阅者模式
观察者模式·设计模式·golang·发布订阅·observer
simpleGq1 年前
设计模式之观察者(Observer)
java·观察者模式·设计模式·observer