나는 임 작업을하는 앱을 가지고 있는데, 애플리케이션을 닫고 다시 시작할 때 내 데이터베이스에 어떤 일이 일어나는지 궁금합니다. onPause, onResume 및 onDestroy에서 어떤 일이 발생 하는지를 지정하지 않았기 때문에 (왜냐하면 내가 무엇을 지정해야할지 모르기 때문입니다) . 여기 응용 프로그램을 시작할 때마다 SQLite 데이터베이스가 새로 작성됩니까?
클래스 내 DBToolspublic class DBTools extends SQLiteOpenHelper {
public DBTools(Context applicationcontext) {
super(applicationcontext, "rggarb.db", null, 1);
}
public void onCreate(SQLiteDatabase database) {
String tableUsers = "CREATE TABLE users (userId INTEGER PRIMARY KEY, userName TEXT, userEmail TEXT, userPassword TEXT, userAvatar TEXT, userSex TEXT)";
database.execSQL(tableUsers);
}
public void onUpgrade(SQLiteDatabase database, int version_old, int current_version) {
String dropTableUsers = "DROP TABLE IF EXISTS tableUsers";
database.execSQL(dropTableUsers);
onCreate(database);
}
//some CRUD methods here, irrelevant for this question
}
이며, 여기에 내가 MainActivity에서
작동 방법은 다음과 같습니다
public class MainActivity extends Activity {
DBTools dbTools = new DBTools(this);
는 사용자가 활동을 가입하고 간다 :
공개 클래스 가입 확장 활동 {
private DBTools dbTools = new DBTools(this);
//later on in this class I do some checks and inserts.
나는 뭔가 잘못되었을 수도 있고, DB의 수명주기에 익숙하지 않은 것 같습니다. 그것은 각 onDestroy에서 공백이됩니까? MainActivity에서 매번 인스턴스화해야합니까? 인스턴스화 한 경우 가입 활동에서 다시 인스턴스화해야합니까?
onUpgrade의 구현에 의존 내가 응용 프로그램을 다시 설치하는 경우, 다음 DB가 사라 졌어요? –
예. 응용 프로그램을 재설치하면 db 데이터가 지워집니다. – Razgriz
MainActivity에서 인스턴스화 한 경우 가입 활동에서 다시 인스턴스화해야합니까? –