2

我将使用新的数据结构为我的应用程序发布更新,因此如果用户正在更新我的应用程序,我需要更新他们当前的数据。所以我想知道如何以编程方式检查用户是否更新了我的应用程序或安装了新副本(如果安装了新副本,我不需要更新任何内容)?

4

1 回答 1

8

SQLite

如果您的数据在 SQLite 数据库中,您可以在SQLiteOpenHelper.onUpgrade().

检查以前的版本

如果没有,您需要某种方法来检查设备上打开的先前版本。就像是:

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
// Use SharedPreferences to store something like "LAST_VERSION_RUN" = pInfo.versionName

然后,您可以检查以前的版本是否不等于当前版本。当然,这种代码也必须在以前的版本中。一旦应用程序已经在野外,就无法实现检测应用程序是否已升级的代码。

检查当前版本

我想在这种情况下你可以做的是检测应用程序版本,然后设置一个标志以不再更新数据模式。因此,假设您的应用版本是 1.0.2,现在是 1.0.3:

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
if (pInfo.versionName.equals("1.0.3") && /* some SharedPreference value */ == false) {
    // upgrade
    // set SharedPreference value to true
}

如果您不使用 SQLite,我认为这将是实现此功能的最佳方式。

于 2012-12-01T17:26:53.383 回答