我正在使用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