其他分享
首页 > 其他分享> > android – 更新时清除App数据

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