我在android项目中使用room,直到一天我发现Room不会立即在db中插入数据为止,一切正常。
我如何复制
当我运行命令 appdatabase.getUserDao()。insert(user)时,两秒钟后,当我从手机中取出电池并导出数据库后,我发现没有插入数据D b。那是100%可以肯定的,因为我的团队已经多次复制了它。似乎不是直接存储到db中,而是缓存了一段时间。
有什么解决方案吗?数据将直接存储在db中而不是缓存吗?
答案 0 :(得分:1)
是的,在导出之前关闭数据库:
RoomDatabase.close()
确保它是
Room.databaseBuilder()
不是
Room.inMemoryDatabaseBuilder()
检查线程是否正常执行,并且您没有中断{{1}}插入
答案 1 :(得分:-1)
尝试使用异步任务插入数据。作为异步任务,在后台逐项工作。 我也在使用异步任务来插入和更新它,这对我来说是完美的。
P.S:我正在使用Java,但您提到过Kotlin,我想您也可以在Kotlin中使用Async。