【问题标题】:LiveData not updating after changed using Handler PostDelayed?使用 Handler PostDelayed 更改后 LiveData 不更新?
【发布时间】:2019-10-04 00:13:01
【问题描述】:

这是我的视图模型

class MainViewModel(repository: MainActivityRepo) : ViewModel() {

val isLoading: MutableLiveData<Boolean> = MutableLiveData()

init {
    isLoading.value = false
    android.os.Handler().postDelayed({
        isLoading.value = true
        Timber.d("isCalled")
    }, 5000L)
     }
}

我调试和检查过,日志运行良好。

boolean 的第一个值设置正确,而第二个不正确

【问题讨论】:

    标签: android handler android-livedata mutablelivedata


    【解决方案1】:

    在后台线程上,你可以使用 post value 代替 set value 这将解决你的问题!

    【讨论】:

      【解决方案2】:

      正如 Vikas 所说,您应该使用 postValue() 方法。

      Handler().postDelayed({
          isLoading.postValue(true)
          Timber.d("isCalled")
      }, 5000L)
      

      【讨论】:

      • @ManojPerumarath 您应该将其中一个答案标记为解决方案。这样你的问题就结束了。
      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2020-02-10
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多