Android应用偏好设置会自动清除

时间:2011-01-23 19:51:51

标签: android android-preferences

突然间,每次我启动应用程序时,我的用户偏好都被清除了。我没有直接在Activity中使用首选项,而是在Application对象中有一个帮助器类,它可以访问这样的首选项:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

这一直很有效,直到现在。我有一个自定义应用程序类来管理应用程序的大部分内容,以避免在创建/销毁活动时重新生成此内容的问题。

我确实知道有一种方法可以清除用户首选项,但我的代码中没有这样的地方。当我开始使用Proguard构建发布版本时,这似乎开始发生了,但现在这也发生在调试版本中。从Eclipse重新下载新应用程序,甚至只是重新启动应用程序会导致首选项被删除。

我一直在查看我最近的代码更改,但没有发现任何相关内容。当我即将在市场上发布该应用程序时,我一直在调试和放大发布,但我不认为这会导致这样的问题。

有什么想法吗?

-Kevin

2 个答案:

答案 0 :(得分:1)

引用你......

  

这似乎开始发生时   我开始和Proguard一起建设   发布版本

由于发布版本和调试版本使用不同的密钥进行签名,因此它们无法在同一设备上共存。在安装发布版本时,您确定没有卸载调试版本吗?卸载将会破坏与应用程序相关的任何偏好。

由于您说您没有可以删除首选项的代码,因此我知道首选项消失的唯一方法是清除或删除物理首选项XML文件。因此,您可以检查以确保没有任何代码清除应用程序本地存储区域中的文件。

答案 1 :(得分:0)

解决了它。使用Logcat,我在阅读首选项时终于注意到了异常。我正在使用null键编写新的首选项,这导致了首选项加载异常。我的愚蠢错误。