android – 更新时清除App数据
作者:互联网
当用户从Google Play商店或任何其他来源更新应用时,我需要以编程方式清除(相当于应用设置中的清除数据)应用中的所有旧数据.这是因为我不需要旧应用程序中的任何现有数据,因为我已经更改了新应用程序中的所有数据,而不是旧应用程序.
我想在app启动时实现版本检查,但我找不到获取应用程序以前的versionCode或versionName的方法.我想清除数据的唯一方法是在发布应用程序时检查lastUpdateTime.但它不可靠,因为用户有其他方式或来源获取应用程序(例如与朋友分享或者如果用户有旧应用程序的备份).
有什么建议?
解决方法:
您可以将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值.
标签:version-control,android,versioning,android-version 来源: https://codeday.me/bug/20190607/1195278.html