我在Android中有活动A和活动B。
活动A中有一个FirestoreRecyclerAdapter
和一个FirestoreRecyclerOptions
对象,它们实时更新一个RecyclerView
。我从活动A中的按钮开始活动B,但是我没有完成活动A,因此,当返回到活动A时,我不需要再次读取先前已在recyclerView中加载的所有文档。
但是,如果我从活动B到活动A启动新的意图,那么旧活动A中的Firestore侦听器会怎样?它会自动终止吗?
答案 0 :(得分:2)
使用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();
}
}