通过Firestore管理Android后向堆栈和侦听器,以优化文档读取

时间:2019-04-24 14:45:51

标签: java android firebase google-cloud-firestore

我在Android中有活动A和活动B。

活动A中有一个FirestoreRecyclerAdapter和一个FirestoreRecyclerOptions对象,它们实时更新一个RecyclerView。我从活动A中的按钮开始活动B,但是我没有完成活动A,因此,当返回到活动A时,我不需要再次读取先前已在recyclerView中加载的所有文档。

但是,如果我从活动B到活动A启动新的意图,那么旧活动A中的Firestore侦听器会怎样?它会自动终止吗?

1 个答案:

答案 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();
    }
}