This is a very simple question:
I'm using the relatively new Lifecycle class (part of the android architecture components libraries) to handle some events of the Activity/Fragment
in an easier way.
This is how you use it for handling ON_DESTROY event:
lifecycle.addObserver(object : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun onDestroy() {
lifecycle.removeObserver(this)
//Do something
}
})
I can't find in the docs and here, whether I should call removeObserver
or that it's done automatically anyway upon the ON_DESTROY event.
I tried to read about it, and for now as a precaution I always call removeObserver
.
Is it safe to avoid calling removeObserver
upon ON_DESTROY event?
There is one chain of discussion over github related this topic.
As far as I know, there is no need to call removeObserve
explicitly.
The only reason is that lifecycle-aware components are specifically designed to make sure the observer is removed.
Here is the link to where this is discussed: https://github.com/googlecodelabs/android-lifecycles/issues/5