首页 > 解决方案 > 如何实现一个中心化的事件系统?Android - 实时数据

问题描述

所以我想出了一个我称之为集中式事件系统的简单Snackbar通知或错误显示DialogFragment。我这样做的方式是我的所有活动都从 a 扩展,BaseActivity并且在这样的课程中我创建了一个CompanionObject. 此伴随对象托管两个 MutableLiveData 对象,一个用于成功通知,一个用于错误通知。

方法BaseActivity上的OnCreatethis 观察这两个 LiveData 对象,并在需要时显示 Snackbars 或 DialogFragments。它有效,但有人告诉我这是不好的做法,而且在架构方面不太好......

为什么这是错误的?我不完全理解为什么它被认为是不好的做法。这样你就可以调用 BaseActivity.successNotification.postValue(event) 了!

open class BaseActivity: AppCompatActivity() {
    companion object {
        val successNotification = MutableLiveData()
    }

    override fun onCreate() {
        successNotification.observe(...)
    }
}

标签: androidkotlinmvvmarchitectureandroid-livedata

解决方案


推荐阅读