微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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语句并按顺序更新数据库,以便按时间顺序处理升级.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐