2013-05-04 3 views
1

내 응용 프로그램과 함께 assets 폴더에 데이터베이스를 번들로 제공했습니다. 첫 번째 활동에서 데이터베이스를 올바른 위치에 완벽하게 복사합니다 (여기에는 문제 없음).SQLiteDatabase.openDatabase (...) vs getWritableDatabase

내 질문; openDatabase (문자열 경로, SQLiteDatabase.CursorFactory 팩토리, int 플래그) 을 사용하거나 SQLiteOpenHelper 클래스의 getWritableDatabase 메서드를 사용하는 것이 더 좋습니까?

더 효율적입니까? Context를 전달해야하는 getWritableDatabase 메서드를 사용하는 것에 익숙하지만 SQliteOpenHelper의 onUpgrade 또는 onCreate 함수가 필요 없기 때문에이 클래스를 사용하지 않고도 할 수 있다고 생각합니다.

답변

1

getWritableDatabase은 데이터베이스를 여는 방법이입니다.

SQLiteOpenHelper이 필요하지 않은 경우 getWritableDatabase으로 전화하지 않아도됩니다.

+0

SQliteDatabase.openDatabase()와 함께 사용하는 경우 Activity life-cylce 중에 어떻게 최적화합니까? 예를 들어 , onPause 중에 자원을 해제합니다. db.close()를 사용하는 것이 안전합니다 (db는 내 SQLiteDatabase 객체 임) 감사합니다 –

+0

다른 질문입니다. 그리고 무엇을 위해 최적화합니까? 속도? 기억? 유지 관리 가능성? –

+0

나는 항상 메모리를 확보하기 위해 onPause() 중에 열려있는 데이터베이스를 닫고 SQLiteOpenHelper close() 메서드는 완벽하고 onResume() 중에 open() 메서드를 사용하는 것이 좋습니다. 그러나 SQLiteDatabase.openDatabase()를 사용하면 작업을 종료 할 때 메모리를 해제하거나 데이터베이스 연결을 끊는 데 적합한 메서드를 찾을 수 없습니다. –

관련 문제