2010-06-07 7 views
1

나는 친구 (그리고 어쩌면 판매용)를위한 간단한 앱을 작성하기 위해 안드로이드 SDK를 가지고 놀고있다.SQLiteOpenHelper, onCreate가 호출 될 때

이 응용 프로그램은 데이터베이스에서 키워드를 검색하고 결과를 화면에 표시하며 searchabul dictonary와 메모장 데모 응용 프로그램을 살펴 보았지만 아직 확실하지 않습니다.

나는 SQLiteOpenHelper를 확장하는 클래스를 작성해야하며 데이터베이스를 만드는 데이 클래스를 사용해야하지만 데이터베이스가 이미 존재하는지 어떻게 확인해야합니까?

설치시 또는 클래스 인스턴스가 생성 될 때마다 onCreate가 호출됩니까? 매번 데이터베이스를 추가하고 오류를 잡아내는 쉬운 방법입니다 (모든 오류는 이미 존재하는 데이터베이스로 인한 것임을 가정 할 때 약간 위험하다고 생각합니다).

미리 감사드립니다.

+1

btw, 귀하의 질문 제목은 오도 된 것입니다. – m6tt

+0

동의합니다 m6tt, 나는 더 나은 것으로 그것을 수정했습니다. –

답변

2

SQLiteOpenHelper가 데이터베이스 생성을 처리합니다. db가 사용자 폰에서 생성되면 데이터베이스 버전 번호를 변경할 때까지 SQliteHelper가 만족할 것입니다.

데이터베이스 생성 코드를 SQLiteOpenHelper의 onCreate 메서드에 넣으면 아무 문제가 없습니다. 당신이 당신의 DB 자체를 업그레이드 할 때

+0

고마워, 그게 내가 원하는 ... onCreate 그냥 안개 표준 생성자 (예, 심지어 안드로이드 자바 에서뿐만 아니라 생성자를 보았을 통해)처럼 조금 들렸어요. 또한 onUpdate에 대한 팁을 주셔서 감사합니다. 다시 한 번 나는 notpad 데모에서 그것을 보았고 그것이 한 일이지만 확실하지 않다고 생각했습니다. 오후 8시 30 분 P.S. 나는 질문 제목에 동의한다. 나는 단지 더 나은 것을 생각할 수 없었다. :) –

-1

(당신은 DB 버전 번호를 변경할 때이 작업을 수행 할 것입니다) 무슨 일 처리하는 몇 가지 코드를 작성할 필요로

은 메모장 데모에서 onUpgrade 방법에서보세요 helper.getWritableDatabase()를 호출 할 때마다 onCreate 메소드가 호출됩니다.

+3

"Whenever"가 정확하지 않다. 데이터베이스 파일이 없으면 호출됩니다. – laalto

관련 문제