我正在使用android SQLiteOpenHelper來處理我的sqlite數據庫。多線程多個sqlite命令android error
我想在後臺使用一個簡單的asynctask做大量的數據庫命令,所以用戶不會注意到它會給主線程帶來的延遲。 當有多個(很大數量)的命令我總是得到數據庫不能打開錯誤。
android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14) os_unix.c:31278: (24) open(/data/user/0/com.locomain.app/databases/app.db-journal)
這不會發生,當我調用命令少量次。
我已經檢查了關於這個問題的其他線程,也做了一些谷歌搜索,但我無法找到anwser。
我的代碼:
public void addTag(Tag tag){
final SQLiteDatabase db = getWritableDatabase();
final ContentValues values = new ContentValues(1);
db.beginTransaction();
values.put(TagColumn.TAG_NAME,tag.getName());
db.insert(TagColumn.TABLE_NAME,null,values);
db.setTransactionSuccessful();
db.endTransaction();
}
其他的東西已經打開了文件。你有2個輔助類的實例嗎?它通常被認爲是最好的,使這個類是一個單身人士,以防止這個問題。 –
不,它的單身 – locomain