观察对象类中的实时数据

Posted

技术标签:

【中文标题】观察对象类中的实时数据【英文标题】:Observe to live data inside object class 【发布时间】:2020-06-05 00:24:05 【问题描述】:

我想为整个应用程序创建一个带有一些全局变量的单例对象,并且我想在这个对象中观察一些全局 LiveData 对象。 在我的一个 DAO 中,我有一个返回 LiveData 的查询

@Query("SELECT * from Config LIMIT 1")
    fun get(): LiveData<Config>

这是我的 appCommon 对象类

object appCommon 
  @Volatile
  var globalVar1: Int = 1;

  @Volatile
  var globalVar2: String = "Global value";

所以我的问题是如何在我的对象类中正确声明全局变量,以便从我的 DAO 观察 LiveData?

【问题讨论】:

【参考方案1】:

您可以在对象的init 块中开始观察您的查询

object appCommon 
    val dao: ConfigDao by inject // pseudo code here, I'd go with DI 
                                 // but it's up to you how you retreive your dao 
                                 // (a repo will do better in my opinion)

    @Volatile
    var globalVar1: Int = 1;

    @Volatile
    var globalVar2: String = "Global value";

    var config: Config? = null

    init 
        dao.get().observeForever 
          config = it
        
    

【讨论】:

谢谢你的回答。我试图意识到这一点,但现在我有另一个问题,你能看看这个问题***.com/questions/60335910/…

以上是关于观察对象类中的实时数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中的 Firebase 实时数据库观察方法中具有异步函数的 DispatchGroup

如何在观察实时数据的值时修复“resp”的空指针

如何实现一个 Firebase 监听器来观察数据库的实时变化

观察者模式

如何观察 Firebase 实时数据库的变化

实现观察者模式以执行类中的方法