Firebase监听器是否需要始终删除?

时间:2016-11-16 11:39:53

标签: android firebase firebase-realtime-database

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

// 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()

什么时候移除侦听器?

1 个答案:

答案 0 :(得分:1)

如果您只希望侦听器在活动处于活动状态时工作,则可以通过在Firebase数据库引用上调用removeEventListener()方法来分离侦听器。如果你在onStart()中附加了监听器,那么你应该在onStop()中分离。

@Override
protected void onStop() {
    super.onStop();

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