我将使用新的数据结构为我的应用程序发布更新,因此如果用户正在更新我的应用程序,我需要更新他们的当前数据。所以我想知道如何以编程方式检查用户是否更新了我的应用程序或安装了新副本(如果安装了新副本我不需要更新任何东西)?
最佳答案
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,我认为这将是实现它的最佳方式。
关于android - 检查用户是否更新了应用程序或安装了新副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13661725/