[英]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.