标签:version-control android versioning android-version
当用户从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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。