【发布时间】:2020-10-30 04:54:58
【问题描述】:
我在我的 android 项目中使用了 room,一切正常,直到有一天我发现 Room 没有立即在 db 中插入数据。
我是如何复制它的
当我运行命令 appdatabase.getUserDao().insert(user) 并在 2 秒后从手机中取出电池并导出数据库后,我发现没有插入数据D b。这是 100% 确定的,因为我的团队已经多次复制了它。它似乎不是直接存储到数据库中而是缓存数据一段时间。
有什么解决方案吗?数据会直接存储在db而不是缓存吗?
【问题讨论】:
-
@zjmo 是正确的,我认为除非您关闭数据库,否则它可能会保留在缓存的数据库中。但是您不必担心,因为无论如何它总是会提供来自 db 的数据。
-
@JeelVankhede ,每次事务期间打开和关闭的数据库非常繁重。我之前也在想它是从 db 提供数据,但是在这个问题之后我发现数据是从缓存中获取的,它不会立即存储在 db 中。因为重新启动设备后它没有获取相同的数据。
标签: android kotlin android-sqlite android-room android-architecture-components