꿈소년의 개발 이야기

SQLiteOpenHelper Singleton instance creating. 본문

Android Development

SQLiteOpenHelper Singleton instance creating.

꿈소년 2013. 7. 4. 15:00
반응형

refer: http://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html


Issue log:

SQLiteConnectionPool The connection pool for database '/data/data/com.android.providers.media/databases/external.db' has been unable to grant a connection to thread 554 (eject thread) with flags 0x2 for 750.025 seconds.


Analysis:

SQLiteOpenHelper instance 가 여러 개 생성되어 접근할 경우 발생함.

new 를 이용한 생성 방식은 금지하고 아래 2가지 방식 중 하나를 사용해서 설계해야 함. 


1. abstract factory 를 이용한 SQLiteOpenHelper 객체 초기화 및 객체 얻기.

getInstance 함수를 통해서 singleton instance를 얻어 오는 작업.


2. ContentProvider 에서 SQLiteDatabase 를 wrapping 하여 사용하는 법.

LoadManager class를 이용해서 CursorLoader 를 만들어 사용하는 것으로 최근에 나온 것임.

refer: http://www.androiddesignpatterns.com/2012/07/understanding-loadermanager.html

'Android Development' 카테고리의 다른 글

Activity 방향 고정하기  (0) 2014.10.01
안드로이드 리소스 자동 정리  (0) 2014.09.04
ndk-stack 으로 so 파일 debugging 하기  (0) 2013.05.13
Activity unregister / Leaked IntentReceiver issue  (0) 2013.05.09
NFC Guide  (0) 2013.05.08