Как удалить liveData навсегда наблюдать в viewModel - PullRequest
0 голосов
/ 25 февраля 2020

Используя liveData в viewModel, я наблюдаю, возвращается ли какой-либо ответ веб-API, но как удалить специфические c наблюдения с помощью метода 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()
    }
}

1 Ответ

1 голос
/ 25 февраля 2020

Сначала определите своего наблюдателя и сохраните его

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

, затем вы можете начать наблюдение навсегда с помощью

responseLiveData.observeForever(mObserver)

, а затем остановить

responseLiveData.removeObserver(mObserver)
...