是否需要在其onDestroy()事件后调用removeObserver进行生命周期管理?

时间:2018-08-16 07:49:44

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

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

背景

我正在使用相对较新的Lifecycle classandroid architecture components libraries的一部分)以更简单的方式处理import * as moment from 'moment'; var diff = moment.duration((moment(762861060)).diff(moment())); var age_in_days = diff.days(); var age_in_years = diff.years(); 的某些事件。

这是处理ON_DESTROY事件的方法:

Activity/Fragment

问题

我在docs和此处都找不到,我应该打电话给 lifecycle.addObserver(object : LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun onDestroy() { lifecycle.removeObserver(this) //Do something } }) 还是在ON_DESTROY事件发生时自动完成。

我尝试过的

我尝试阅读有关内容,为预防起见,我始终致电removeObserver

问题

避免在发生ON_DESTROY事件时调用removeObserver吗?

2 个答案:

答案 0 :(得分:0)

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

据我所知,无需显式调用removeObserve

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

您可以参考链接“ https://github.com/googlecodelabs/android-lifecycles/issues/5

答案 1 :(得分:-1)

就我而言,如果您在应用程序中调用lifecycle.addObserver,则不必调用removeObserver,当应用程序被销毁时,该进程也会被终止。如果您在活动中调用lifecycle.addObserver,则需要使用removeObserver方法调用OnDestroy