내 sqlite 데이터베이스를 처리하기 위해 SQLiteOpenHelper을 사용하고 있습니다.다중 스레드 다중 sqlite 명령 안드로이드 오류
간단한 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)
명령을 약간 호출 할 때 발생하지 않습니다.
나는이 문제와 관련된 다른 스레드를 이미 확인했으며 일부 Google 검색도했지만 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