android - 仅在应用程序升级时升级行

标签 android android-sqlite

如果我只想在用户升级应用程序时更新一次数据库行,那么您会在我的数据库处理程序类中的 OnUpgrade 方法中执行此操作,还是会在基于 SharedPreferences 的应用程序类中将其作为 asyncTask 执行?

谢谢

最佳答案

应用程序中数据库更新的典型设计模式类似于下面的代码,每次更新需要更改数据库的应用程序时,都会更改 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;
    }
}

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

关于android - 仅在应用程序升级时升级行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18578983/

相关文章:

java - Android 分发包含后台服务的 SDK。

android - 基于sqlite中的多个条件创建触发器

android - 如何在不使用 CONFLICT_REPLACE 的情况下获得 "insert or update"行为?

android - 我应该如何通知用户 SQLite Asset Helper 是第一次加载数据库?

android - Material Design 应用程序需要状态栏和工具栏之间的阴影吗?

android - 在android中运行进度条时设置背景屏幕模糊

android - Android 上的 100vh 有多高?

android - SuperpoweredAndroidAudioIO和UDP socket音频传输

java - 当我执行代码时,sqlite 中发生错误= CursorIndexOutOfBoundsException

android - 使用 SQL COUNT 和 SUM 的复杂查询