java - 对于使用房间数据库的应用程序,概念是在后台运行的数据库交互,如何确保查询在继续之前完成

标签 java android android-room

我在我的应用程序中实现了 Android Room 数据库。我的理解是,房间数据库交互将在后台运行,独立于 UI 线程。如果我的应用程序根据数据库查询结果采取操作,那么确保查询结果在执行附加代码之前已完成的最佳设计技术是什么。

我在测试中遇到的情况是,在我的代码在提交查询后继续运行后,查询就很好地完成了(废话!!)。如果程序的继续执行依赖于查询结果,我可以告诉 Room 不要在后台运行查询并暂停运行下一行代码,直到返回结果为止。

最佳答案

what is the best design technique to ensure that the results of the query have completed before the executing additional code

第 1 步:让您的 Room DAO 公开响应式(Reactive) API(例如,LiveData、RxJava、Kotlin 协程)

第 2 步:对这些 API 调用的结果使用react,并在此时在您的应用中前进(例如,从 LiveDataObserver)

关于java - 对于使用房间数据库的应用程序,概念是在后台运行的数据库交互,如何确保查询在继续之前完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60673987/

相关文章:

android - 是否可以在 RecyclerView 的子级中预加载 WebView 中的数据?

java - 获取 LiveData 的初始值总是返回 Null

android - 房间数据库抛出CursorWindowAllocationException

android - 我可以扩展一个简单的对象类来创建一个 Room 数据库对象吗?

android - 相同的 ImageButtons 消耗大量内存

java - 映射时向 Orika MappingContext 添加外部数据

java - 为什么 "class"、 "metaClass"和 "declaringClass"不能用作 JSON-lib 中的键?

java - 为什么 bluetoothAdapter 回调在连接 BLE 设备时抛出错误?

android - 为 Pre-Lollipop 设备创建 Circular Reveal

java - 如何访问 Java 方面中指定的参数?