android - 如何确保为每个设备创建一个房间,而不是每次启动应用程序时创建一个新实例

标签 android android-room

也许我错过了一些东西,因为我找不到任何关于这个的东西。我想使用 Android Room 将我的数据本地存储在设备上。如何确保它是单个数据库,而不是每次都是新实例?是按类名吗?

最佳答案

当您构建房间数据库然后访问构建的数据库时,它会打开数据库(或者如果它不存在则创建它(一次,除非应用程序被卸载))。

数据库本身是一个文件,一般存储在App的数据(data/data/the_package/databases)中,因此数据属于App。该文件仍然存在(实际上是永久性的)。

如果您关心的是预打包的数据库(即,在其他地方创建并通常填充的数据库(例如 SQLite 管理工具)并作为 APK 的一部分提供),那么应用程序会在构建之前从 APK 复制数据库/打开它。

因此,创建实例(构建后访问)实际上是打开文件,而不是每次都创建新数据库。

关于android - 如何确保为每个设备创建一个房间,而不是每次启动应用程序时创建一个新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58794265/

相关文章:

php - 如何按GPS位置的接近程度过滤数据库结果?

php - PHP-上传到服务器时获取apk包名称

android - 我可以对Android的默认搜索栏进行自动填充吗?

Android Room 数据库事务

android - 如何在 WearableActivity 中获取 LifecycleOwner?

android - 另一个 AsyncTask 问题 - 内部类看不到 doInBackground 方法

java - 想要通过我的服务器将音频上传到声云,如何检查仅从外部存储目录上传歌曲

java - 与 Room 的多对多关系导致错误 : Entities and Pojos must have a usable public constructor

android - 如何使用房间自动迁移删除/重命名多个列

android - 协程流程 : Not sure how to convert a Cursor to this method's return type