Firebase是否在Android上为其听众使用“WeakReference”?

时间:2016-01-29 22:43:36

标签: android firebase listener weak-references weak

我想知道Firebase是否使用WeakReference类来引用侦听器实例。

想象一下以下情况:一个愚蠢的开发人员在他ValueEventListener的{​​{1}}中附加onCreate()并忘记将其删除。如果SillyActivity被杀,那么听众引用是否无效?否则它将保留在进程堆中,甚至继续执行。

换句话说:作为一个SillyActivity,如果只在活动/片段的生命周期中添加一次,那么听众就不会被删除。它不会在活动/片段的生命周期内泄漏。

另一个相关的奖励问题是,如果添加WeakReference的听众被自动删除。该文档声称会触发一次监听器,但不会将其删除。我认为它会被自动删除 - 这将是实现一次性火灾的最简单方法。

1 个答案:

答案 0 :(得分:1)

我对此表示怀疑,否则它不适合这样的事情:

polls.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot snapshot) {
    ...
  }
}

因为侦听器不会有任何非WeakReference