[Android, Firebase, Memory Leak]

前陣子才學會的一件事

FirebaseDatabase.getInstance().getReference()...addChildEventListener(new ChildEventListener....);

在裡面操作任何 activity 任何變數, 都是很危險的;
一進電梯, 一個網路不穩, 馬上Leak..解決辦法是

A. WeakReference
private final static class MsgChildEventListener implements ChildEventListener...
private final MsgChildEventListener mMsgListener
然後把 Activity 丟進去, 裡面只留 WeakReference

B. 當不使用時, 務必呼叫
FirebaseDatabase.getInstance().getReference(Consts.DB_MSG).child(roomId).removeEventListener(mMsgListener);

Google 商店下載
Apple 商店下載