当用户更新来自 Google Play 商店或任何其他来源的应用程序。这是因为我不需要旧应用程序中的任何现有数据,因为与旧应用程序相比,我已经更改了新应用程序中的所有内容。
我想在应用程序启动时实现版本检查,但我找不到获取应用程序的previous versionCode
或 versionName的方法
。我想出清除数据的唯一方法是在发布应用程序时检查 lastUpdateTime
。但它并不可靠,因为用户可以通过其他方式或来源获取该应用程序(例如与 friend 分享,或者如果用户有旧应用程序的备份)。
有什么建议吗?
最佳答案
您可以将versionCode
存储在SharedPreferences
中并与当前的versionCode
进行比较
要清除所有数据,您只需清除 SharedPreferences、本地数据库和您存储的所有本地文件的所有值。
public void clearData()
{
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
int mCurrentVersion = pInfo.versionCode;
SharedPreferences mSharedPreferences = getSharedPreferences("app_name", Context.MODE_PRIVATE);
SharedPreferences.Editor mEditor = mSharedPreferences.edit();
mEditor.apply();
int last_version = mSharedPreferences.getInt("last_version", -1);
if(last_version != mCurrentVersion)
{
//clear all your data like database, share preference, local file
//Note : Don't delete last_version value in share preference
}
mEditor.putInt("last_version", mCurrentVersion);
mEditor.commit();
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
注意:不要删除共享偏好中的last_version值。
关于android - 更新时清除应用程序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48520051/