即使观察者活动被破坏,MutableLiveData仍保留旧值

时间:2019-09-17 18:59:57

标签: android android-livedata android-mvvm mutablelivedata

我有一个活动正在从存储库观察实时数据。现在,当该活动被销毁并再次创建时,除非手动获取新的活动,否则我仍然会从存储库中获取旧的值。

为什么即使观察者的活动被破坏了,可变的活数据仍保留其旧值?

1 个答案:

答案 0 :(得分:0)

您可以减少ViewModel的生命周期,在这种情况下,新创建的ViewModel将不会保留以前的数据。

或者,您可以在活动内部手动调用

override fun onDestroy(){
    super.onDestroy()
    viewModel.clear()
}

内部视图模型:

fun clear(){ myLiveData.value = defaultValue /*or null*/ }

或使用LiveEvent更改MutableLiveData
https://proandroiddev.com/livedata-with-single-events-2395dea972a8