ccd
ccd

Reputation: 6948

How to remove liveData forever observe in viewModel

Using liveData in viewModel, I observe if any web api response return, but how to remove specific observe with removeObserve method?

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()
    }
}

Upvotes: 0

Views: 1788

Answers (1)

Pietro Scarampella
Pietro Scarampella

Reputation: 472

First, define your observer and store it

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

then you can start observing forever with

responseLiveData.observeForever(mObserver)

and then stop

responseLiveData.removeObserver(mObserver)

Upvotes: 1

Related Questions