我可以删除以前安装的Android应用程序设置的所有数据

时间:2013-11-06 11:48:43

标签: android sqlite

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

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

4 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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

中的文件资源管理器删除数据库文件

答案 2 :(得分:1)

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

对于共享偏好设置..您可以在调用onUpgrade时从 OpenHelper 中清除它们。

答案 3 :(得分: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函数。在那里删除所有数据库。