我的應用程序中的每個片段都有自己的一組連續的Firebase偵聽器。一旦活動片段發生變化,這些就變得不必要了,然而,聽衆仍然在後臺。除此之外,這些老的監聽器可能會觸發前一個Fragment的View更新,這會導致應用程序崩潰。所以,我希望在碎片發生變化時整理並清理聽衆。我不知道如何,但我有一個替代解決方案,我很好奇你的想法和建議。刪除片段上連續的Firebase偵聽器更改
監聽器函數被調用的片段onCreate
,例如:
fuSetListener();
這些功能檢索和保存在全局變量中的數據。
在火力地堡聽者的onDataChange
我執行此if語句來檢查偵聽器應該被刪除:
if(getActivity()==null){
reference.removeEventListener(this);
} else {
// Perform necessary onDataChange actions
}
於是問題出現了,並getActivity()
只有在情況下返回null
的碎片有什麼改變?或者可能getActivity()
返回null
沒有改變片段和弄亂我的片段的目的?
我已經應用了這種方法幾次,並沒有遇到麻煩,但我想在繼續之前與您覈對。