在应用更新时删除数据库

时间:2015-08-04 07:48:36

标签: android sqlite

我预先加载了位于资产中的sqlite数据库,该数据库首次安装后会复制到默认数据库位置。我想在每个应用更新上执行此过程。 我不需要保留现有数据库中的任何用户数据。

如何在更新应用时删除旧数据库文件?

2 个答案:

答案 0 :(得分:3)

这实际上是两个问题:

  • 如何在应用更新上执行某些操作

您可以使用共享首选项中的最新版本代码保存变量。每次启动应用程序后,您都会使用保存的代码检查当前代码。如果它们不匹配,那就是更新并执行一些代码。

  • 如何删除数据库

如果数据库已关闭,您只需删除该文件即可。使用Context.getDatabasePath(String)查找文件的位置,使用File.delete()删除文件。确保没有进程正在访问数据库文件。如果是这样,您可能需要使用File.deleteOnExit()并强制重新启动应用程序。

答案 1 :(得分:0)

使用onUpgrade()类的SQLiteOpenHelper方法。

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Delete old table 
    db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);

    // Re-create table
    onCreate(db);
 }