观察对象类中的实时数据

问题描述 投票:0回答:1

我想为整个应用程序创建一个带有一些全局变量的单例对象,并且我还想在该对象中观察一些全局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的对象类中正确声明全局变量?

android kotlin android-livedata
1个回答
0
投票

您可以在对象的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
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.