Android 对LiveData使用observerForever()可以吗?它不会导致内存泄漏吗?我应该在活动中的某个地方注销它吗?

Android 对LiveData使用observerForever()可以吗?它不会导致内存泄漏吗?我应该在活动中的某个地方注销它吗?,android,android-livedata,Android,Android Livedata,我创建了一个定制的liveData,它有一个contentObserver,如果我在这个contentObserver上使用observerForever,它不会导致任何内存泄漏吗?并且想知道observerForever有多安全,以及我应该采取哪些其他预防措施。您必须调用removeObserver(),否则将永远无法删除观察者,并且根据您的实现,您可能会出现内存泄漏。文档中说:“将给定的观察者添加到观察者列表中。此调用类似于使用始终处于活动状态的LifecycleOwner进行观察(Life

我创建了一个定制的liveData,它有一个contentObserver,如果我在这个contentObserver上使用observerForever,它不会导致任何内存泄漏吗?并且想知道observerForever有多安全,以及我应该采取哪些其他预防措施。

您必须调用
removeObserver()
,否则将永远无法删除观察者,并且根据您的实现,您可能会出现内存泄漏。

文档中说:“将给定的观察者添加到观察者列表中。此调用类似于使用始终处于活动状态的LifecycleOwner进行观察(LifecycleOwner,Observer)。这意味着给定的观察者将接收所有事件,并且永远不会被自动删除。您应该手动调用removeObserver(Observer)停止观察此LiveData。“理想情况下,它应该是
@onDestroy
。但是,@pskink。当您使用
MediatorLiveData
Tramsformations.*map()时,是否有
observerForever()的实时用例?@SantanuSur
您在引擎盖下使用的方法