使用Firestore管理Android后备堆栈和侦听器以优化文档读取

问题描述 投票:0回答:1

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

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

但是,如果我从活动B开始向活动A发起新意图,那么旧活动A中的Firestore监听器会发生什么?它会自动终止吗?

java android firebase google-cloud-firestore
1个回答
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();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.