使用 Handler PostDelayed 更改后 LiveData 不更新?

LiveData not updating after changed using Handler PostDelayed?

这是我的视图模型

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)
     }
}

我调试检查了,日志运行正常。

第一个布尔值设置正确,第二个不正确

在后台线程中,您可以使用post值代替设置值,这将解决您的问题!

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

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