是应用程序关闭后SQLite数据库仍然存在?

时间:2015-01-27 13:28:52

标签: android sqlite android-lifecycle

非常(非常)基本的问题,我不清楚: 在应用程序关闭后,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

3 个答案:

答案 0 :(得分:4)

数据库数据存储在/data/data/<your.app.package.name>/database/下(或类似的东西)。它是一个物理文件,在您卸载应用程序或用户转到Settings->App->Clear Data之前保留在设备上

您发布的代码是在第一次您的应用执行getReadableDatabasegetWritableDatabase时执行的。这意味着,SQLiteOpenHelper类检查磁盘中该位置是否存在有效的DB文件。如果没有文件,它将执行onCreate(创建数据库文件)。

摘自方法getReadableDatabasegetWritableDatabase文档:

  

创建和/或打开数据库

答案 1 :(得分:0)

关闭后SQLite数据库将保留。

尝试使用 如果不存在则创建表

防止重新创建数据库

答案 2 :(得分:0)

是的,它会一直存在,直到您从智能手机中删除应用程序或明确清除数据库。 你应该check this tutorial,它涵盖了很多用于android的sqlite。

希望它有所帮助。