java - 使用 Firestore 管理 Android 后台堆栈和监听器以优化文档读取

标签 java android firebase google-cloud-firestore

我在 Android 中有 Activity A 和 Activity B。

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

但是,如果我从 Activity B 到 Activity A 启动一个新 Intent ,旧 Activity A 中的 Firestore 监听器会发生什么情况?会自动终止吗?

最佳答案

当您使用 Query 的 addValueEventListener() 时方法中,您应该根据 Activity 的生命周期删除监听器,如我在以下帖子中的回答中所解释的:

如果您使用 Firebase-UI 库,一旦开始监听 onStart() 方法中的更改:

@Override
protected void onStart() {
    super.onStart();
    firestoreRecyclerAdapter.startListening();
}

您还需要停止监听 onStop() 方法中的更改:

@Override
protected void onStop() {
    super.onStop();
    if(firestoreRecyclerAdapter != null) {
        firestoreRecyclerAdapter.stopListening();
    }
}

关于java - 使用 Firestore 管理 Android 后台堆栈和监听器以优化文档读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55832855/

相关文章:

java - 模拟初始上下文

android - 完成首选项 Activity 中的所有 Activity

java - 在 `removeLocationUpdates` 的 `FusedLocationClientProvider` 完成时接收回调的最佳方式是什么

android - 取消注册 Activity 中注册的所有广播接收器

java - 服务 "has no zero argument constructor",但确实如此。该怎么办?使类静态?

java - 如何读取jar外部的文件//pom中mysql依赖的getResource问题

java - 如何按降序对映射条目的键值进行排序?

firebase - 发布应用程序 com.google.android.gms.common.api.b 10 后 Flutter Google Sign 和 Phone Auth 错误

java - 在 Java 中对单个字符进行子字符串化

ios - 如何从 Appdelegate 打开 Viewcontroller?