Java 使用Firestore管理Android后台堆栈和侦听器以优化文档读取
我在Android中有活动A和活动B 在活动A中有一个Java 使用Firestore管理Android后台堆栈和侦听器以优化文档读取,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我在Android中有活动A和活动B 在活动A中有一个FirestoreRecyclerAdapter和一个FirestoreRecyclerOptions对象,它们实时更新一个RecyclerView。我从活动a中的一个按钮开始活动B,但我没有完成活动a,因此当返回到活动a时,我不需要再次阅读之前在我的recyclerView中加载的所有文档 但是,如果我从活动B启动一个新的意图到活动a,那么旧活动a中的Firestore侦听器会发生什么情况?它是自动终止的吗?当您使用Query的方法时,您应
FirestoreRecyclerAdapter
和一个FirestoreRecyclerOptions
对象,它们实时更新一个RecyclerView
。我从活动a中的一个按钮开始活动B,但我没有完成活动a,因此当返回到活动a时,我不需要再次阅读之前在我的recyclerView中加载的所有文档
但是,如果我从活动B启动一个新的意图到活动a,那么旧活动a中的Firestore侦听器会发生什么情况?它是自动终止的吗?当您使用Query的方法时,您应该根据活动的生命周期删除侦听器,如我在以下帖子中的回答所述:
onStart()
方法中的更改:
@Override
protected void onStart() {
super.onStart();
firestoreRecyclerAdapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
if(firestoreRecyclerAdapter != null) {
firestoreRecyclerAdapter.stopListening();
}
}
您还需要停止侦听onStop()
方法中的更改:
@Override
protected void onStart() {
super.onStart();
firestoreRecyclerAdapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
if(firestoreRecyclerAdapter != null) {
firestoreRecyclerAdapter.stopListening();
}
}
当您使用Query的方法时,您应该根据活动的生命周期删除侦听器,如我在以下帖子中的回答所述:
onStart()
方法中的更改:
@Override
protected void onStart() {
super.onStart();
firestoreRecyclerAdapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
if(firestoreRecyclerAdapter != null) {
firestoreRecyclerAdapter.stopListening();
}
}
您还需要停止侦听onStop()
方法中的更改:
@Override
protected void onStart() {
super.onStart();
firestoreRecyclerAdapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
if(firestoreRecyclerAdapter != null) {
firestoreRecyclerAdapter.stopListening();
}
}
请添加您正在使用的实际代码,而不是描述代码。我没有特定代码,我正在描述一个场景-这个问题是一般性的,因为我想了解Firestore中的侦听器在所描述的情况下是如何工作的。适配器的类型是什么,
FirestoreRecyclerAdapter
?是,这是一个有趣的问题,因为我怀疑实时侦听器的优化,我更新了我的问题,而不是描述代码,请添加您正在使用的实际代码。我没有具体的代码,我正在描述一个场景-这个问题是一般性的,因为我想了解Firestore中的侦听器在所描述的案例中是如何工作的。什么是适配器类型,FirestoreRecyclerAdapter
?是的,这是一个有趣的问题,因为我怀疑实时侦听器的优化,我更新了我的问题