Android SQLiteOpenHelper#onUpgrade()-新版本总是最新版本吗?

Android SQLiteOpenHelper#onUpgrade()-新版本总是最新版本吗?,android,android-sqlite,sqliteopenhelper,Android,Android Sqlite,Sqliteopenhelper,数据库助手与我的升级想法: public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "myapp.db"; private static final int DATABASE_VERSION = 11; public DatabaseHelper(Context context) { super(context, DATABASE_

数据库助手与我的升级想法:

public class DatabaseHelper extends SQLiteOpenHelper {

  private static final String DATABASE_NAME = "myapp.db";
  private static final int DATABASE_VERSION = 11;

  public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
  }

  public void onCreate(SQLiteDatabase db) { /* ... */ }

  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    switch(oldVersion) {
        case 1: upgradeToSecond(db);
        case 2: upgradeToThird();
        case 3: upgradeToFourth();
        // ...
        case 10: upgradeToEleventh();
    }
  }

  private void upgradeToSecond(SQLiteDatabase  db) { /* ... */ }
  private void upgradeToThird(SQLiteDatabase  db) { /* ... */ }
  private void upgradeToFourth(SQLiteDatabase  db) { /* ... */ }
  // ...
  private void upgradeToEleventh(SQLiteDatabase  db) { /* ... */ }
}
由于开关没有
中断
s,数据库模式将逐步更新到最新版本,无论用户以前有什么版本。如果
旧版本
8
,则将运行升级方法
upgradetonith(db)
upgradetonith(db)
upgradeToEleventh(db)
。太好了

但是这段代码假设
newVersion
的值始终是数据库的最新版本(提供给
SQLiteOpenHelper
构造函数的值)。这是真的吗?是否存在使用
newVersion
调用
onUpgrade
方法而调用最新版本的情况

是否存在使用最新版本以外的新版本调用onUpgrade方法的情况

onUpgrade
仅在发布应用程序的更新版本并增加数据库版本后执行

但是这段代码假设newVersion的值始终是数据库的最新版本(提供给SQLiteOpenHelper构造函数的值)。这是真的吗

这可以通过阅读where
onUpgrade()
调用,其中
newVersion
参数与您传入的
SQLiteOpenHelper
构造函数参数相同来验证