使用 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)
这是我的视图模型
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)