检查用户是否更新了应用程序或安装了新副本?

Ans*_*hul 2 android

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

Eri*_*ric 8

SQLite的

如果您的数据位于SQLite数据库中,则可以在其中实现代码SQLiteOpenHelper.onUpgrade().

检查以前的版本

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

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

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

检查当前版本

我想在这种情况下你可以做的是检测应用程序版本,然后设置一个标志,不再次更新数据模式.所以,假设您的应用版本是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
}
Run Code Online (Sandbox Code Playgroud)

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