0

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

想象以下场景:一个愚蠢的开发人员附加了一个ValueEventListenerinonCreate()SillyActivity忘记删除它。如果 get 被杀死,听众的参考是否会变得无效SillyActivity?否则它将保留在进程堆中,甚至继续执行。

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

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

4

1 回答 1

1

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

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

WeakReference因为听众不会有任何非s。

于 2016-01-29T22:47:13.487 回答