应用程序关闭后 SQLite 数据库是否保留?

is SQLite db remain after application shutdown?

我不清楚的非常(非常)基本的问题: SQLite 数据库在应用程序关闭后是否保留所有添加或销毁的数据?

如果是这样(我希望如此),那么在应用程序生命周期中什么时候创建数据库架构?我希望它是在应用程序安装时创建的, 但根据文档,我看到每次应用程序启动时都会这样做。

我错过了什么? 下面的代码在应用程序生命周期中什么时候执行?

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

SQLite 数据库将在关闭后保留。

尝试使用 创建 TABLE 如果不存在

防止重新创建数据库

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

的 sqlite

希望对您有所帮助。

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

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

摘自方法 getReadableDatabasegetWritableDatabase 文档:

Create and/or open a database