突然之间,每次我启动我的应用程序时,我的用户首选项都会被清除。我没有在 Activity 中直接使用首选项,而是在我的 Application 对象中有一个辅助类,它可以像这样访问首选项:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
直到现在,这一直运行良好。我有一个管理应用程序大部分内容的自定义应用程序类,以避免在创建/销毁 Activity 时重新生成此内容的问题。
我知道有一种方法可以清除用户首选项,但我的代码中没有任何地方。当我开始使用 Proguard 构建发布版本时,这似乎确实开始发生,但现在调试版本也发生了这种情况。从 Eclipse 重新下载新的应用程序,甚至只是重新启动应用程序都会导致首选项被清除。
我一直在检查我最近的代码更改,但没有发现任何相关内容。当我即将在市场上发布该应用程序时,我一直在调试和发布之间切换,但我认为这不会导致这样的问题。
有什么想法吗?
-凯文
最佳答案
引用你的话......
This did seem to start happening when I started building with Proguard for release builds
由于发布版本和调试版本使用不同的 key 进行签名,因此它们不能在同一设备上共存。您确定在安装发布版本时没有卸载调试版本吗?卸载会破坏与该应用相关的任何偏好设置。
既然您说您没有可以删除首选项的代码,那么我所知道的使首选项消失的唯一其他方法是清除或删除物理首选项 XML 文件。因此,您可能会检查以确保您没有任何代码可以清除应用程序本地存储区域中的文件。
关于Android 应用首选项正在自动清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4776073/