在它的 onDestroy() 事件发生时,我是否需要为生命周期调用 removeObserver?
Do I need to call removeObserver for lifecycle, upon its onDestroy() event?
这是一个非常简单的问题:
背景
我正在使用相对较新的 Lifecycle class (part of the android architecture components libraries) 以更简单的方式处理 Activity/Fragment
的一些事件。
这就是您使用它处理 ON_DESTROY 事件的方式:
lifecycle.addObserver(object : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun onDestroy() {
lifecycle.removeObserver(this)
//Do something
}
})
问题
我在 docs 和这里找不到我应该调用 removeObserver
还是自动完成无论如何在 ON_DESTROY 事件之后。
我试过的
我试着阅读它,现在作为预防措施,我总是调用 removeObserver
.
问题
避免在 ON_DESTROY 事件时调用 removeObserver
是否安全?
在我看来,如果你在应用程序中调用lifecycle.addObserver
,你不必调用removeObserver
,当应用程序被销毁时,进程也会被杀死。如果在 activity 中调用 lifecycle.addObserver
,则需要在 OnDestroy
方法中调用 removeObserver
。
有一个关于此主题的 github 讨论链。
据我所知,无需显式调用 removeObserve
。
唯一的原因是生命周期感知组件是专门为确保此回调而设计的。
听说是link可以参考,https://github.com/googlecodelabs/android-lifecycles/issues/5
这是一个非常简单的问题:
背景
我正在使用相对较新的 Lifecycle class (part of the android architecture components libraries) 以更简单的方式处理 Activity/Fragment
的一些事件。
这就是您使用它处理 ON_DESTROY 事件的方式:
lifecycle.addObserver(object : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun onDestroy() {
lifecycle.removeObserver(this)
//Do something
}
})
问题
我在 docs 和这里找不到我应该调用 removeObserver
还是自动完成无论如何在 ON_DESTROY 事件之后。
我试过的
我试着阅读它,现在作为预防措施,我总是调用 removeObserver
.
问题
避免在 ON_DESTROY 事件时调用 removeObserver
是否安全?
在我看来,如果你在应用程序中调用lifecycle.addObserver
,你不必调用removeObserver
,当应用程序被销毁时,进程也会被杀死。如果在 activity 中调用 lifecycle.addObserver
,则需要在 OnDestroy
方法中调用 removeObserver
。
有一个关于此主题的 github 讨论链。
据我所知,无需显式调用 removeObserve
。
唯一的原因是生命周期感知组件是专门为确保此回调而设计的。
听说是link可以参考,https://github.com/googlecodelabs/android-lifecycles/issues/5