2017-09-23 72 views
0

即使在主机listRef的父代activity已被销毁之后,addListenerForSingleValueEvent会被解雇吗?Firebase Base侦听器行为

DatabaseReference listRef = FirebaseDatabase.getInstance().getReference(Constants.Client + "/"+Constants.branch); 
      listRef.keepSynced(true); 
      listRef.addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 



       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 

回答

1

Firebase数据库侦听器未与活动或其他上下文关联。如果您不希望它们在活动被销毁后触发,则应该在活动的正确生命周期方法中删除侦听器。

另见:

+0

为什么不与上下文关联? doc说keepSynced真正加载到RAM中,那么实例会在RAM中保留多久? –

+2

调用'ref.keepSynced(true)'本质上意味着Firebase会向该位置添加一个空的侦听器,以便在应用程序处于活动状态时数据在内存中保持最新状态。一旦应用程序退出,或者当您调用'ref.keepSynced(false)'*和*对同一位置的所有其他引用已被删除,数据将被删除。 –

相关问题