android – 更新apk时更新db
作者:互联网
在我的Android应用程序中,我创建了包含一些数据的数据库,它位于应用程序商店.现在我需要根据新的要求更改数据库.当我更新apk文件时,它不会再次创建新的数据库,因为它已经创建.
如何更新已在用户设备上创建的数据库?我怎样才能调用sqlite db的onUpgread()方法?有没有办法在模拟器上检查它?
请建议.谢谢.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " +TABLE_NAME );
onCreate(db);
}
解决方法:
如果数据库版本已增加,则会自动调用onUpgrade方法.
创建数据库时,您将构造函数的版本号作为整数提供.例如.
public class DatabaseHelper extends SQLiteOpenHelper{
static final String dbName = "myDatabase";
static int dbVersion = 3;
public DatabaseHelper(Context context) {
super(context, dbName, null, dbVersion);
}
@Override
public void onCreate(SQLiteDatabase db) {
// Create database
}
如果增加上面的dbVersion,当再次创建数据库时,它会看到该数字已增加,因为它会跟踪您发送的当前版本号.值的增加将触发升级并运行该代码.
在onUpgrade方法中,您可以指定不同版本号之间的操作.例如,在版本2和3之间可能会对数据库进行更改,但也会在3到4之间进行更改,在这种情况下,您需要处理将从2连续跳到4的人员,他们不会更新他们的开发人员可能喜欢的APK文件!
执行此操作的一种简单方法是使用if语句并按顺序更新数据库,以便按时间顺序处理升级.
标签:database,android,sqlite,onupdate 来源: https://codeday.me/bug/20190620/1247802.html