데이터베이스 활동이 많은 응용 프로그램이 있습니다. 때로는 SQLite '데이터베이스 잠김'오류가 SQLiteExceptions로 이어지는 데 사용되었습니다. Whie 사용하려고 시도했습니다 :안드로이드에서 sqlite '데이터베이스 잠김'오류 처리
저장 또는 삽입을 사용하기 전에 성공하지 못했습니다. 그래서 저는 예를 들어 수업에서 다음과 같이 설정했습니다.
public AtomicBoolean getWritingToDataBaseFlag() {
return writingToDataBaseFlag;
}
내가 삽입을 수행하거나이 같은 일을 저장하려는 시간 :
boolean succeeded = false;
while(!succeeded) {
if(application.getWritingToDataBaseFlag().compareAndSet(false, true)) {
if((!db.isDbLockedByCurrentThread())&&(!db.isDbLockedByOtherThreads())) {
if(!activity.isFinishing()) {
set_id(db.insert(SDIGENRE, SDIID, cv));
}
}
application.getWritingToDataBaseFlag().compareAndSet(true, false);
succeeded = true;
} else {
// Wait 100 millis
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
이를 접근과
private AtomicBoolean writingToDataBaseFlag = new AtomicBoolean(false);
: 응용 프로그램과 같이 확장하여 MyApplication 꽤 오래 동안 잘 작동 한 것 같습니다.
- 이 문제를 해결하려면 올바른 방법입니까?
- 나는이 오류를 다시보기 시작했습니다. 이 문제를 디버깅하는 방법에 대한 조언이 있습니까?
어떤 도움을 주셔서 감사합니다. 줄리어스.