【问题标题】: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?

【问题讨论】:

    标签: android kotlin android-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
            }
        }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多