꿈소년의 개발 이야기
SQLiteOpenHelper Singleton instance creating. 본문
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' 카테고리의 다른 글
| Color Palette (0) | 2014.10.23 |
|---|---|
| Activity 방향 고정하기 (0) | 2014.10.01 |
| ndk-stack 으로 so 파일 debugging 하기 (0) | 2013.05.13 |
| Activity unregister / Leaked IntentReceiver issue (0) | 2013.05.09 |
| NFC Guide (0) | 2013.05.08 |
