Firebase监听器需要始终被移除吗?

5

如果我以以下方式在活动中使用侦听器:

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        String value = dataSnapshot.getValue(String.class);
        Log.d(TAG, "Value is: " + value);
    }

    @Override
    public void onCancelled(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

如果我附加了一个匿名侦听器(未附加到变量的事件),我是否仍然需要删除它?

*我在onStart()上设置它,并且需要它一直运行到onStop() / onDestroy()

何时需要删除侦听器?


如果您只有一个EventListener,则无需删除它,因为当侦听器在列表中下载数据时,它会自动删除。 - Farrukh Faizy
1个回答

1
如果您只希望侦听器在活动处于活动状态时起作用,则可以通过在 Firebase 数据库引用上调用 removeEventListener() 方法来分离侦听器。如果在 onStart() 中附加了侦听器,则应在 onStop() 中分离。
@Override
protected void onStop() {
    super.onStop();

    //...
    myRef.removeEventListener();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接