我应该在使用" addListenerForSingleValueEvent"之后删除

时间:2017-02-27 18:14:47

标签: android firebase firebase-realtime-database

正如文档所说,SingleValueEvent的监听器只运行一次 那么在使用它之后是不必删除监听器?

final Query query = getChatsRef().limitToLast(20);
query.addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        query.removeEventListener(this);         
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        query.removeEventListener(this); 
    }
});

1 个答案:

答案 0 :(得分:12)

没有。不需要像在代码片段中那样删除侦听器。

您可能想要删除once侦听器的唯一原因是侦听器尚未触发的时间。我唯一能看到发生这种情况的时候是你没有连接到Firebase服务器,而且你正在检查的位置没有被缓存。这应该是相当少的案例。