2

如果我只想在我的用户升级他们的应用程序时只更新一次 DB 行,那么你会在我的 DB 处理程序类的 OnUpgrade 方法中执行它,还是会在基于 SharedPreferences 的 Application 类中作为 asyncTask 执行它?

谢谢

4

1 回答 1

2

应用程序中数据库更新的典型设计模式类似于下面的代码,每次更新需要更改数据库的应用程序时,都会增加 SQLiteOpenHelper 派生类中使用的数据库版本。

当然,这假定您使用 SQLiteOpenHelper 来管理在您的提供程序中获取对 SQLite DB 的引用:

 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    if (oldVersion == 1) {
                // DO WORK TO UPGRADE FROM VERSION 1 to 2
                oldVersion += 1;
    }

    if (oldVersion == 2) {
                // DO WORK TO UPGRADE FROM VERSION 2 to 3
                oldVersion += 1;
    }

    if (oldVersion == 3) {
                // DO WORK TO UPGRADE FROM VERSION 3 to 4
                oldVersion += 1;
    }
}

这允许任何用户从任何以前的版本升级到当前版本,并确保所有更改都以正确的顺序进行。所以,它只会做一次,因为在下一个版本上,数据库版本会变得更高。

于 2013-09-02T18:36:12.917 回答