在它的 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