更新新版本的应用程序时删除sqlite数据库

Pra*_*ani 4 database sqlite android clear android-sqlite

我在Google Playstore上的SQLite数据库中上传了一个包含22个表的apk(版本1.0).

现在我想在新版本(版本2.0)的应用程序中使用36个表更新数据库.

我存储datebase在默认位置,所以当我按下应用程序管理器中的"清除数据"时,数据库将被删除.

我只想知道在用户更新新版本时如何删除旧数据库(与清除数据相同)?

更新:

如果在从Play商店更新应用程序时有任何清除数据的解决方案,那么也回答了我.

非常感谢您的帮助.

谢谢.

Waq*_*med 7

您可以使用此方法删除数据库.

context.deleteDatabase(DATABASE_NAME);
Run Code Online (Sandbox Code Playgroud)

您也可以使用此方法首先查找数据库路径,然后删除它.

File myDb = context.getDatabasePath(DATABSE_NAME);
Boolean isDelete = myDb.delete();
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是,如果要更新数据库,则只需更改数据库的版本号.onUpgrade()将自动被调用,您的旧数据库将被删除,并将创建新的数据库.


Pra*_*ani 4

最后用简单的解决方案完成了:

/** UPGRADE DATABASE **/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    Log.i(TAG, "Database Version: OLD: "+ oldVersion + " = NEW: "+newVersion);

    if(context.deleteDatabase(DATABASE_NAME))
        Log.i(TAG, "Database Deleted....");
    else
        Log.i(TAG, "Database Not Deleted..");
}
Run Code Online (Sandbox Code Playgroud)