我有一项活动正在观察存储库中的实时数据。现在,当活动被破坏然后再次创建时,我仍然从存储库中获取旧值,除非我手动获取新值。
为什么即使在观察者活动被破坏后 mutablelivedata 仍保留其旧值?
我有一项活动正在观察存储库中的实时数据。现在,当活动被破坏然后再次创建时,我仍然从存储库中获取旧值,除非我手动获取新值。
为什么即使在观察者活动被破坏后 mutablelivedata 仍保留其旧值?
您可以减少 ViewModel 的生命周期,在这种情况下,新创建的 ViewModel 不会保留以前的数据。
或者,您可以在活动中手动调用
override fun onDestroy(){
super.onDestroy()
viewModel.clear()
}
内部视图模型:
fun clear(){ myLiveData.value = defaultValue /*or null*/ }
或使用 LiveEvent
https://proandroiddev.com/livedata-with-single-events-2395dea972a8更改 MutableLiveData