2011-08-27 4 views
18

연결을 끊지 않으면 어떻게됩니까? 당신이 그것을 닫지 않고 다른 것을 열려고 시도한다면 당신이 예외를 얻는다는 것을 안다. 그러나 당신이 글로벌 싱글 톤을 갖고 있다면, 당신은 그것을 닫지 않을 것인가? 어떤 생각?안드로이드 SQLite 연결을 닫지 마십시오

답변

25

공간 시간 연속체에 균열이 형성되어 우주에서 모든 생명의 소멸을 위협합니다. 밝은 색의 우스운 모양의 옷을 입은 사람이 많습니다 (일부는 케이프, 당신이 그것을 믿을 수 있다면).

아, 안됩니다. 그것은 단지 만화책이었습니다.


실제로 아무 것도 발생하지 않습니다. Google 직원 및 기타 Android 전문가가 SQLite 작동 방식 (특히 트랜잭션 처리)으로 인해 데이터베이스를 닫지 못하면 아무 일도 일어나지 않을 것이라고 말했습니다.

실제로 콘텐츠 공급자를 구현하면 콘텐츠 공급자가 어떤 종류의 onDestroy() 메서드도 호출되지 않으므로 이와 동일한 효과가 있습니다. 즉, 데이터베이스를 닫을 수있는 기회가 전혀 없음을 의미합니다. 컨텐트 프로 바이더는 프로세스가 종료 될 때까지 살아있을 것입니다. 개인적으로 이것은 정말 저를 괴롭 힙니다. 이것이 제가 콘텐츠 제공자의 사용을 최소화하려고하는 이유 중 하나입니다.

+4

콘텐츠 제공 업체는 Android에서 가장 이해하기 어렵고 가장 많이 사용되는 부분 중 하나입니다. 그것들은 문서 나 적어도 초기 문서들에 크게 의존하고 있지만, 타사 응용 프로그램과 데이터를 공유하려는 경우에만 사용해야합니다. DB 액세스를 직렬화하기 위해 사람들이 사용하는 것을 보았습니다. 이것은 끔찍한 일입니다. 어쨌든, 하나의 정적 인 연결이 괜찮을 것이라고 생각했습니다. 여러 연결을 사용하여 어떤 일이 발생하는지 테스트하는 작업을 많이했습니다. 요약, 나쁜 : http://www.touchlab.co/blog/android-sqlite-locking/. ORMLite에 대한 연결 관리의 재촉 작업. 감사. –

+0

좋은 블로그 게시물 인 BTW입니다. – CommonsWare

+0

블로그 게시물이 더 이상 존재하지 않는 것 같습니다. 새 링크? – John

관련 문제