Activity 中的 FirebaseAuth 内存泄漏

FirebaseAuth Memory Leak in Activity

我在我的应用程序中添加了很棒的 LeakCanary 库,很快我就开始收到关于我在各种活动中使用的 FirebaseAuth 对象生成的泄漏的各种报告。

现在我的问题是:这是 Firebase 库本身产生的泄漏,还是我应该在 onDestroy 中销毁对象(例如将其设置为 null)?

这是report from LeakCanary and here is the heapdump

答案隐藏在泄密报告的这一行中:

* references com.ispimi.ispimi.DetailsFragment.this[=10=] (anonymous class implements com.firebase.client.ValueEventListener)

您需要确保在销毁 Activity 之前删除您添加的所有侦听器。平衡添加监听器和移除监听器。例如,如果您在 onCreate 中添加它,则在 onDestroy 中删除它。如果您在 onStart 中添加它,请在 onStop 中删除它,依此类推。