我在Android中有活动A和活动B。
在活动A中,有一个FirestoreRecyclerAdapter
和FirestoreRecyclerOptions
对象,它们实时更新RecyclerView
。我从活动A中的按钮开始活动B,但是我没有完成活动A,因此,当返回到活动A时,无需再次读取先前已在recyclerView中加载的所有文档。
但是,如果我从活动B到活动A启动新的意图,那么旧活动A中的Firestore侦听器会怎样?它会自动终止吗?
最佳答案
当使用Query的addValueEventListener()方法时,应根据活动的生命周期删除侦听器,如以下帖子中我的回答所述:
Should I actually remove the ValueEventListener?
如果您使用的是Firebase-UI库,则开始侦听onStart()
方法中的更改后:
@Override
protected void onStart() {
super.onStart();
firestoreRecyclerAdapter.startListening();
}
您还需要停止监听
onStop()
方法中的更改:@Override
protected void onStop() {
super.onStop();
if(firestoreRecyclerAdapter != null) {
firestoreRecyclerAdapter.stopListening();
}
}