繁体   English   中英

安卓房间数据库被锁定

[英]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();

Android Room 数据库日志模式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM