【发布时间】:2021-12-28 19:56:07
【问题描述】:
我正在尝试覆盖 firebase 消息,我需要在一个不在活动中的类中使用实时数据对象,但我不知道如何获取 LifecycleOwner。
currentUserIDLiveData.observe(this , androidx.lifecycle.Observer{
println("THE CURRENT USER ID IS " + it)
})
【问题讨论】:
-
这取决于。您是在尝试获取 Fragment、Dialog、像 Manager 这样的随机类的生命周期所有者,还是究竟是什么?
-
Afaik
FirebaseMessagingService不会扩展LifecycleService,因此您可以在LiveData上使用observeForever并在服务的 onDestroy 中删除观察者。 -
如果您使用
observeForever,请确保您创建了一个您持有的Observer对象,并在添加和删除观察者时传入。如果您使用 lambda,它会转换为 SAM,每次都将其视为不同的对象,因此原始对象不会被删除,最终会导致内存泄漏
标签: android firebase kotlin android-livedata