2015-10-15 35 views
0

我有一个已在Play商店中的应用程序。我现在正在进行更新。假设我目前的应用版本是1.0.4,我发布了1.0.5。所以对于从1.0.4开始的下一个更新,我必须清除偏好。也就是说,如果用户已经拥有1.0.5版本并且将来更新,则假设1.0.6首选项不应该清除。有没有办法做到这一点?删除所有首选项以进行下一次更新

准确地说,我要明确的喜好第一次更新后1.0.4

任何帮助将不胜感激

编辑

其实有一个与意图过滤器的广播接收器

<action android:name="android.intent.action.PACKAGE_REPLACED" /> 

如果我在这广泛演员的onReceiver里面得到以前的版本,我可以轻松地清除首选项。

+0

http://stackoverflow.com/questions/12380968/how-to-clear-old-preferences-when-updating-android-app –

+0

我看到了这个问题,但它删除了特定版本时的首选项。 – droidev

回答

1

我会在释放1.0.5的同时在您的SharedPreferences中添加版本密钥对,并重置此更新中设备的所有SharedPreferences。

我想你知道如何完全重置您的SHP:

yourSharedPreferences.edit().clear().apply(); 

或者,同步情况:

yourSharedPreferences.edit().clear().commit(); 

同时释放到1.0.6,你可以看看你的版本的密钥对 。如果存在,应该是1.0.5。相反,您正在从1.0.4更新,您可以像上一步那样重置您的SHP。

我希望这会帮助你!

+0

这实际上是一个解决方案,但我试图做广播接收器<动作android:name =“android.intent.action.PACKAGE_REPLACED”/>如果我在这里得到以前的版本,我可以重置偏好然后,如果我我正在添加一个额外的密钥对,我必须检查每个应用程序的启动 – droidev

+0

是的,你是对的。你将不得不检查这个每个应用程序的开始,但在简单搜索你想要做什么(有趣的方法)后似乎是一个困难的事情:(http://stackoverflow.com/q/13193214/3886983 –

+0

无论如何,这是不是我想象中的答案,但是因为还有其他方法可以做到这一点,所以我必须接受这一点,而不是保留我想存储布尔值的版本,这样可以提高性能。 – droidev

相关问题