Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在应用程序更新时清除用户数据?_Android - Fatal编程技术网

Android 如何在应用程序更新时清除用户数据?

Android 如何在应用程序更新时清除用户数据?,android,Android,我最初拥有的是:一个带有按钮的启动程序活动,可以启动我的主要活动。启动器活动具有共享的首选项,因此它只显示一次。但是,我添加了一个新的活动,当用户单击launcher活动上的按钮时,将出现一个介绍页面。但是,由于我的启动器活动上的共享首选项,该介绍页面不会显示 那么有没有办法在更新时清除用户的数据呢?仅针对此更新,当用户更新我的应用程序时,我希望运行以下程序: SharedPreferences settings = getActivity().getSharedPreferences("cda

我最初拥有的是:一个带有按钮的启动程序活动,可以启动我的主要活动。启动器活动具有共享的首选项,因此它只显示一次。但是,我添加了一个新的活动,当用户单击launcher活动上的按钮时,将出现一个介绍页面。但是,由于我的启动器活动上的共享首选项,该介绍页面不会显示

那么有没有办法在更新时清除用户的数据呢?仅针对此更新,当用户更新我的应用程序时,我希望运行以下程序:

SharedPreferences settings = getActivity().getSharedPreferences("cda-preferences", Context.MODE_PRIVATE); 
    settings.edit().clear().commit();

这是可能的吗?

是的,您可以为
MY\u PACKAGE\u REPLACED
操作定义一个
BroadcastReceiver
。在此接收器的
onReceive
方法中,您应该清除共享首选项中的标志。(API12+)



或者,您应该将应用程序的版本保存到共享prefs。当用户启动应用程序时,您应该检查上一个应用程序是什么,如果是更新的,请显示介绍页面。

谢谢。我使用了int versionCode=BuildConfig.VERSION\u代码;来解决我的问题
<receiver
    android:name=".OnUpgradeReceiver"
    android:enabled="true" >
    <intent-filter>
        <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
</receiver>