【发布时间】:2020-02-25 15:35:21
【问题描述】:
在 viewModel 中使用 liveData,我观察是否有任何 web api 响应返回,但是如何使用 removeObserve 方法删除特定的观察?
class MyViewModel: ViewModel() {
fun buttomSubmit() {
val responseLiveData = webFetch()
responseLiveData.observeForever(
Observe { // define a Observe?
doSomething()
}
)
}
override fun onCleared() {
responseLiveData.removeObserver(observer) // how to correctly remove the observe
super.onCleared()
}
}
【问题讨论】:
-
仅供参考:在 onCleared() 中调用 removeObserver 没有意义,因为这个函数只会在片段/活动销毁时被调用。
-
您不应该将 LiveData 用于单个回调,而应该使用回调。
标签: android kotlin android-livedata android-viewmodel