【发布时间】:2018-03-08 16:02:32
【问题描述】:
我的应用程序中的每个 Fragment 都有自己的一组连续的 Firebase 侦听器。一旦活动的 Fragment 发生变化,这些就变得不必要了,但是,侦听器会继续在后台运行。除此之外,这些旧的监听器可能会触发前一个 Fragment 的 View 更新,这可能会导致应用程序崩溃。所以,一旦片段发生变化,我想整理并清理听众。我不知道怎么做,但我有一个替代解决方案,我很好奇你的想法和建议。
在FragmentsonCreate中调用监听函数,例如:
fuSetListener();
这些函数检索数据并将其保存在全局变量中。
在 Firebase 监听器的 onDataChange 中,我执行这个 if 语句来检查是否应该删除监听器:
if(getActivity()==null){
reference.removeEventListener(this);
} else {
// Perform necessary onDataChange actions
}
那么问题来了,getActivity() 是否只返回null 以防 Fragment 发生变化?或者 getActivity() 可以返回 null 而不更改 Fragment 并弄乱我的 Fragment 用途?
我已经应用了几次这种方法,还没有遇到问题,但我想在继续之前与您确认一下。
【问题讨论】:
标签: java android firebase fragment listener