Android会议室数据库未立即在db中插入数据

时间:2020-10-30 04:54:58

标签: android kotlin android-sqlite android-room android-architecture-components

我在android项目中使用room,直到一天我发现Room不会立即在db中插入数据为止,一切正常。

我如何复制

当我运行命令 appdatabase.getUserDao()。insert(user)时,两秒钟后,当我从手机中取出电池并导出数据库后,我发现没有插入数据D b。那是100%可以肯定的,因为我的团队已经多次复制了它。似乎不是直接存储到db中,而是缓存了一段时间。

有什么解决方案吗?数据将直接存储在db中而不是缓存吗?

2 个答案:

答案 0 :(得分:1)

是的,在导出之前关闭数据库:

RoomDatabase.close()

确保它是

Room.databaseBuilder()

不是

Room.inMemoryDatabaseBuilder()

检查线程是否正常执行,并且您没有中断{​​{1}}插入

答案 1 :(得分:-1)

尝试使用异步任务插入数据。作为异步任务,在后台逐项工作。 我也在使用异步任务来插入和更新它,这对我来说是完美的。

P.S:我正在使用Java,但您提到过Kotlin,我想您也可以在Kotlin中使用Async。