2017-02-27 69 views
2

后删除文件说,SingleValueEvent的监听器只运行一次。
那么在使用它之后不需要删除监听器吗?我应该在使用“addListenerForSingleValueEvent”

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); 
    } 
}); 

回答

10

否。不需要像在代码段中那样删除监听器。

您可能想要删除once侦听器的唯一原因是侦听器还未被触发。我唯一可以看到发生的情况是当您未连接到Firebase服务器,并且您正在检查的位置未被缓存。这应该是相当少的情况。

+0

感谢您的最快答案! – wonsuc

+1

在addListenerForSingleValueEvent下的参考文档中包含这将会很棒。谢谢。 – GregM