重新安装应用程序时,是否可以删除先前安装相同应用程序(数据库表和共享首选项等)的任何现有数据集?
我有一个在 sqlite 数据库中存储一些值的应用程序,如果该应用程序在没有事先正确卸载的情况下重新安装。我面临以前的数据库条目等问题。
如果卸载应用程序没有做这些事情,试试这个:
System Parameters -> Manage Applications -> Your Application -> Clear data
如果单击按钮(清除数据),您将看到一个对话框,显示将清除的数据类型。
编辑:如果您想以编程方式执行此操作,您可以:
super
在构造函数的方法中更改数据库版本:
super(context, DATABASE_NAME, null, NEW_DB_VERSION);
drop
在创建表之前添加一条语句。
database.execSQL("DROP TABLE IF EXISTS your_table");
database.execSQL(" CREATE TABLE your_table ...");
继续硬删除数据库:
this.context.deleteDatabase(YOUR_DATABASE_NAME;
它非常简单。
drop
首先使用查询删除表
sdb.execSQL("DROP TABLE IF EXISTS tablename");
然后再次使用create table
查询
sdb.execSQL(" CREATE TABLE tablename(col1 TEXT PRIMARY KEY)");
或者
使用路径中的文件资源管理器删除数据库文件 data->data->package->databases->dbname
就像 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 函数。在那里进行所有数据库删除。
在OpenHelper中将数据库版本更新为更大的值,它将自动删除数据库中的所有表并重新创建它们。
对于共享首选项..您可以在调用时从OpenHelper中清除它们。onUpgrade