난 당신이 확실히 해결책을 발견, 그것은 이전 게시물 알고,하지만 난 (upvoted) 유효한 질문을 찾아서 답변을받지 못했다으로, 여기 내 2 센트 : onCreate()
에서 onUpgrade()
호출
(나는 그것을 테스트하지 않았다) 일해야하지만, 당신을 도우미로 편성하는 더 좋은 방법이있다. (이하 스 니펫 참조). 요점은이 두 가지 방법이 단지 진입 점이라는 것입니다. 도우미 이런 종류의
public class SampleDBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "mydatabase";
private static final int DB_VERSION = 2;
public SampleDBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
updateDatabase(db, 0, DB_VERSION);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
updateDatabase(db, oldVersion, newVersion);
}
private void updateDatabase(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 1) {
// Create 3 initial tables
}
if (oldVersion < 2) {
// Create the new table
}
}
}
장점은 :
- 당신은
onCreate()
및 onUpgrade()
방법 만 updateDatabase()
을 변경할 필요가 없습니다.
- 증가 DB_VERSION
- 이 새로운 섹션
if (oldVersion < N) { // do the upgrade }
를 추가 : 새 버전에 대한
, 당신은 할 필요가있다.
제공 : 강하게, 새벽 데이비드 그리피스, 라일리,
2015 년 왜'onCreate' 세 개의 테이블을 생성 않습니다 Head First Android Development에서 영감을? –
답장을 보내 주셔서 감사합니다. 그것은 단지 예일뿐입니다. 내 응용 프로그램에서 onUpgrade() 메서드를 처리하고 싶습니다. –