当我使用第 3 方非线程安全的 sqlite 库时,我从生产中得到了“android.database.sqlite.SQLiteDatabaseLockedException”异常。我检查了所有线程和连接关闭,我将所有实例设为单例,但我无法解决问题(我什至没有自己重现案例)。然后我将我的 orm 移动到完全线程安全的 Room 数据库。但我仍然从生产中得到完全相同的错误。那么,Room db 线程不是安全的吗?它不是像 Google 提到的那样解决了传统 sqlite 库的问题吗?是否有人在使用 Room 时遇到数据库锁定错误?
请您参考如下方法:
请检查https://stackoverflow.com/a/63849367/3256989 . 简而言之,在构建 RoomDatabase 期间尝试使用 enableMultiInstanceInvalidation()
。