【问题标题】:Do I need to call removeObserver for lifecycle, upon its onDestroy() event? [duplicate]我是否需要在其 onDestroy() 事件时调用 removeObserver 的生命周期? [复制]
【发布时间】:2018-08-16 07:49:44
【问题描述】:

这是一个非常简单的问题:

背景

我正在使用相对较新的Lifecycle classandroid 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 是否安全?

【问题讨论】:

  • AFAIK ,无需显式调用removeObservegithub.com/googlecodelabs/android-lifecycles/issues/5
  • @Radhey 为什么不把它放在答案中以便我接受呢?似乎他们写道,在这种情况下不需要它......
  • 我不应该得到其他开发人员解决方案的信任。如果你愿意,我可以这样做,以便其他社区成员可以采取适当的可读解决方案:)

标签: android android-lifecycle android-architecture-lifecycle


【解决方案1】:

在 github 上有一个与此主题相关的讨论链。

据我所知,不需要显式调用removeObserve

唯一的原因是生命周期感知组件是专门为确保回调而设计的。

听到的是你可以参考的链接,https://github.com/googlecodelabs/android-lifecycles/issues/5

【讨论】:

    【解决方案2】:

    在我的观点中,如果你在应用程序中调用lifecycle.addObserver,你不必调用removeObserver,当应用程序被销毁时,进程也会被杀死。如果您在活动中调用lifecycle.addObserver,则需要在OnDestroy 方法上调用removeObserver

    【讨论】:

      猜你喜欢
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多