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