android房间数据库锁定

时间:2018-03-08 21:36:43

标签: android database android-room locked

当我使用第三方非线程安全的sqlite库时,我从生产中得到了“android.database.sqlite.SQLiteDatabaseLockedException”异常。我检查了所有线程和连接关闭,我使所有实例单例但我无法解决问题(我甚至没有自己重现案例)。然后我将我的orm移动到Room数据库,这是完全线程安全的。但我仍然从生产中得到完全相同的错误。所以不是Room db线程安全,并不是像谷歌提到的那样处理传统sqlite库的问题吗?是否有人面对数据库锁定错误与房间?

2 个答案:

答案 0 :(得分:0)

尝试将日记模式设置为JournalMode.AUTOMATIC。对我来说很好。

我的项目中的示例代码

INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
                        MyDatabase.class, "myDatabase")
                        .addMigrations(MIGRATION_1_2)
                        .addCallback(sRoomDatabaseCallback)
                        .setJournalMode(JournalMode.AUTOMATIC)
                        .build();

Android Room Database Journal Mode

答案 1 :(得分:0)

请检查https://stackoverflow.com/a/63849367/3256989。 简而言之,请在构建RoomDatabase时尝试使用enableMultiInstanceInvalidation()