Android 使用处理程序PostDelayed更改后未更新LiveData?

Android 使用处理程序PostDelayed更改后未更新LiveData?,android,handler,android-livedata,mutablelivedata,Android,Handler,Android Livedata,Mutablelivedata,这是我的视图模型 class MainViewModel(repository: MainActivityRepo) : ViewModel() { val isLoading: MutableLiveData<Boolean> = MutableLiveData() init { isLoading.value = false android.os.Handler().postDelayed({ isLoading.value = true

这是我的视图模型

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)
     }
}
class MainViewModel(存储库:MainActivityReporto):ViewModel(){
val isLoading:MutableLiveData=MutableLiveData()
初始化{
isLoading.value=false
android.os.Handler().postDelayed({
isLoading.value=true
木材d(“被称为”)
},5000升)
}
}
我进行了调试和检查,日志工作正常


布尔值的第一个值设置正确,而第二个值在后台线程上不正确,您可以使用post值而不是set值,这将解决您的问题

在后台线程上,您可以使用post值而不是set值,这将解决您的问题

如Vikas所述,您应该使用该方法


正如Vikas所提到的,您应该使用该方法


@ManojPerumarath您应该将其中一个答案标记为解决方案。这样你的问题就结束了。@ManojPerumarath你应该将其中一个答案标记为解决方案。这样你的问题就结束了。
Handler().postDelayed({
    isLoading.postValue(true)
    Timber.d("isCalled")
}, 5000L)