1

重新安装应用程序时,是否可以删除先前安装相同应用程序(数据库表和共享首选项等)的任何现有数据集?

我有一个在 sqlite 数据库中存储一些值的应用程序,如果该应用程序在没有事先正确卸载的情况下重新安装。我面临以前的数据库条目等问题。

4

4 回答 4

3

如果卸载应用程序没有做这些事情,试试这个:

System Parameters -> Manage Applications -> Your Application -> Clear data

如果单击按钮(清除数据),您将看到一个对话框,显示将清除的数据类型。

编辑:如果您想以编程方式执行此操作,您可以:

  1. super在构造函数的方法中更改数据库版本:

    super(context, DATABASE_NAME, null, NEW_DB_VERSION);

  2. drop在创建表之前添加一条语句。

    database.execSQL("DROP TABLE IF EXISTS your_table"); database.execSQL(" CREATE TABLE your_table ...");

  3. 继续硬删除数据库:

    this.context.deleteDatabase(YOUR_DATABASE_NAME;

于 2013-11-06T11:51:52.233 回答
1

它非常简单。

drop首先使用查询删除表

sdb.execSQL("DROP TABLE IF EXISTS tablename");

然后再次使用create table查询

sdb.execSQL(" CREATE TABLE tablename(col1 TEXT PRIMARY KEY)");

或者

使用路径中的文件资源管理器删除数据库文件 data->data->package->databases->dbname

于 2013-11-06T11:52:50.950 回答
0

就像 Ankit Popli 所说,使用版本是正确的方法:

  public class Database extends SQLiteOpenHelper{

    private static final int DATABASE_VERSION   = 1;
    public static final String DATABASE_NAME    = "YourDBName.db";

    @Override
    public void onCreate(SQLiteDatabase db) {

      db.execSQL(CREATE_TABLE);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // ALl the deletion operation here.
      db.execSQL("DROP TABLE IF EXISTS "+Database.TABLE);       
      onCreate(db);

    }
}

当版本号递增时,AndroidSqlite 会自动调用 onUpgrade 函数。在那里进行所有数据库删除。

于 2013-11-06T12:02:48.250 回答
0

在OpenHelper中将数据库版本更新为更大的值,它将自动删除数据库中的所有表并重新创建它们。

对于共享首选项..您可以在调用时从OpenHelper中清除它们。onUpgrade

于 2013-11-06T11:54:33.130 回答