[英]android room database locked
当我使用第 3 方非线程安全的 sqlite 库时,我从生产中得到了“android.database.sqlite.SQLiteDatabaseLockedException”异常。 我检查了所有线程和连接关闭,我将所有实例设为单例,但我无法解决问题(我什至没有自己重现案例)。 然后我将我的 orm 移动到完全线程安全的 Room 数据库。 但我仍然从生产中得到完全相同的错误。 那么,Room db 线程不是安全的吗?它不是像 Google 提到的那样解决了传统 sqlite 库的问题吗? 是否有人在使用 Room 时遇到数据库锁定错误?
请检查https://stackoverflow.com/a/63849367/3256989 。 简而言之,尝试在构建 RoomDatabase 期间使用enableMultiInstanceInvalidation()
。
尝试将 Journal Mode 设置为JournalMode.AUTOMATIC
。 对我来说很好。
我项目中的示例代码
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
MyDatabase.class, "myDatabase")
.addMigrations(MIGRATION_1_2)
.addCallback(sRoomDatabaseCallback)
.setJournalMode(JournalMode.AUTOMATIC)
.build();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.