我有一個應用程序,我在工作,我不知道當我關閉我的應用程序並重新啓動它時,我的數據庫會發生什麼,因爲我從未指定onPause,onResume和onDestroy發生了什麼(因爲我不知道在那裏指定什麼) 。每次啓動應用程序時,是否都會重新創建SQLite數據庫?
這裏是我的DBTools類
public 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);
然後用戶去註冊活動,而且有:
public class Signup extends Activity {
private DBTools dbTools = new DBTools(this);
//later on in this class I do some checks and inserts.
我懷疑有些東西可能是錯的,我不熟悉數據庫的生命週期,我使用它的方式。它在每個onDestroy上都是空白的嗎?每次都需要在MainActivity中實例化它嗎?如果我在那裏實例化了,是否需要在註冊活動中再次安裝它?
取決於您的實現,並且如果我重新安裝應用程序,那麼DB走了,對不對? –
是的。重新安裝應用程序將擦除數據庫數據。 – Razgriz
如果我已經在MainActivity中實例化它,我需要在Signup Activity中再次安裝它嗎? –