2012-04-03 2 views
2

현재 탭에 3 가지 액티비티가있는 탭이있는 안드로이드 애플리케이션을 만들려고합니다. 그러나 액티비티는 각각 하나의 데이터베이스에 액세스합니다. 안드로이드는 두 번째와 세 번째 탭이 데이터베이스에서 잠금을 갖지 않는다고 불평합니다. 왜냐하면 탭 1은 처음 시작 되었기 때문에 그것을 얻었을 것이기 때문입니다. 3 명의 탭에서이 데이터베이스에 액세스 할 수있게하려면 어떻게해야하는지 알 수 있습니다.여러 활동에 걸쳐 안드로이드 데이터베이스

답변

0

데이터베이스 시작 (앱이 아직없는 경우 Application 하위 클래스 생성)을 열고 데이터베이스를 닫지 마십시오. 싱글 톤을 사용하여 액티비티간에 데이터베이스를 공유하거나 Application 클래스의 액세서 메서드를 공유하십시오.

SQLite는 필요한 경우 경쟁 스레드 간의 순차 액세스를 관리하므로 스스로를 관리 할 필요가 없습니다. SQLite의 트랜잭션 특성은 모든 것을 가장 빠른 기회에 스토리지에 플러시한다는 것을 의미하기 때문에 데이터베이스를 닫을 필요가 없습니다.

이렇게하면 코드가 훨씬 간단 해지고 안전하게됩니다.

관련 문제