是否会为每个增量调用onUpgrade?

时间:2015-03-09 20:17:21

标签: android sqlite sqliteopenhelper

假设我的应用程序的数据库版本1在某些用户设备上运行了一段时间。

在此期间我将数据库版本增加到2,然后增加到3并按照这样处理onUpgrade:

if (oldVersion == 1 && newVersion == 2) {
                db.execSQL(String.format("ALTER TABLE ... ADD .. text", ));

            } else if (oldVersion == 2 && newVersion == 3) {
                 db.execSQL(String.format("ALTER TABLE ... ADD .. text", ));
            }

当该用户升级我的应用时,是否会执行两个块?

1 个答案:

答案 0 :(得分:1)

我想你可以使用:

if (oldVersion == 1) {
  do stuff;
  oldVersion = oldVersion + 1;
}

if (oldVersion == 2) {
  do stuff;
  oldVersion = oldVersion + 1;
}

或使用开关。