java – 如何测试升级sqlite数据库,然后在Android上的Play Store上载我的应用程序的新版本

前端之家收集整理的这篇文章主要介绍了java – 如何测试升级sqlite数据库,然后在Android上的Play Store上载我的应用程序的新版本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在更新应用程序版本后,我上传的应用程序中没有这样的表格找到“table_name”.测试后我出来,只有将旧版本的应用程序升级到新版本的应用程序后才会收到此问题

我已经实现了

我已经在onUpgrade()方法中完成了代码,并且在构造函数升级了db版本,但是我无法在设备中测试它.

步骤1)增加版本代码1到2

public databasehelper(Context context) {

        super(context,DATABASE_NAME,null,2);
        this.myContext = context;
        try {
            createDataBase();
            openDataBase();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

步骤2)将新表添加到onUpgrade()方法

@Override
    public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {

        Log.e("onUpgrade db",">>>>called");
        switch (oldVersion) {
        case 1:
            db.execsql(DATABASE_CREATE_notification_counter);
            Log.e("db version",">>>"+oldVersion);
            // we want both updates,so no break statement here...
        case 2:
            Log.e("db version",">>>"+oldVersion);
                  // I removed onCreate() method from here because new version will already have the new table
//          onCreate(db);
        }

    }

步骤3)新版本的数据库的onCreate()方法.

@Override
    public void onCreate(sqliteDatabase db) {
        db.execsql(DATABASE_CREATE_notification_counter); 
        Log.d("oncreate db",">>>>called");
    }

我有解决方升级数据库link1 link2 link3 link4

为什么我无法测试

我们已经在游戏商店上传了付费应用程序,所以我必须在模拟器或设备中使用两种不同的apk方式测试数据库升级方法旧版本和较新版本.
并且我已经在设备中首先使用旧版本进行测试,然后再使用新版本(db更改,db中添加新表),但是onUpgrade()方法此时不会被调用.

题:

1) How can I test db upgrade before updating new version on the
play store?

2) It will call only when you update the version from play store
only?

请帮我解决这个问题.

答案将不胜感激.提前致谢.

解决方法

数据库中存储的数据库版本.只需创建一个具有旧版本的db(db_old),而不是在您的DbHelper中.使用DbHelper连接到db_old,你的onUpgrade方法将被调用.

您可以使用现有的db作为db_old,只是减少它的版本.要更改版本,您可以使用任何sqlite数据库编辑器.

如果不想为DbHelper编写测试并想要模拟应用程序升级,可以使用adb install -r命令. Read more here.

猜你在找的Android相关文章