如何永久删除liveData在viewModel中观察

问题描述 投票:0回答:1

在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()
    }
}
android kotlin android-livedata android-viewmodel
1个回答
0
投票

首先,定义您的观察者并将其存储

val mObserver: Observer<MyClass> = Observer { obj ->
    doSomething(obj)
}

然后您就可以开始永久观察

responseLiveData.observeForever(mObserver)

然后停止

responseLiveData.removeObserver(mObserver)
© www.soinside.com 2019 - 2024. All rights reserved.