非常(非常)基本的问题,我不清楚: 在应用程序关闭后,SQLite数据库是否仍然保留了添加到其中或已销毁的所有数据?
如果是这样(我希望如此),在应用程序生命周期中何时创建数据库架构?我希望它能在app安装上创建, 但根据文档,我看到每次应用程序启动时都会执行此操作。
我错过了什么? 在应用程序生命周期中何时执行以下代码?
public class DatabaseHandler extends SQLiteOpenHelper {
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_PH_NO + " TEXT" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
} //DatabaseHandler
答案 0 :(得分:4)
数据库数据存储在/data/data/<your.app.package.name>/database/
下(或类似的东西)。它是一个物理文件,在您卸载应用程序或用户转到Settings->App->Clear Data
之前保留在设备上
您发布的代码是在第一次您的应用执行getReadableDatabase
或getWritableDatabase
时执行的。这意味着,SQLiteOpenHelper
类检查磁盘中该位置是否存在有效的DB文件。如果没有文件,它将执行onCreate
(创建数据库文件)。
摘自方法getReadableDatabase
或getWritableDatabase
文档:
创建和/或打开数据库
答案 1 :(得分:0)
关闭后SQLite数据库将保留。
尝试使用 如果不存在则创建表
防止重新创建数据库
答案 2 :(得分:0)
是的,它会一直存在,直到您从智能手机中删除应用程序或明确清除数据库。 你应该check this tutorial,它涵盖了很多用于android的sqlite。
希望它有所帮助。