当应用程序强制关闭或崩溃时,共享首选项会重置

时间:2011-01-26 03:01:35

标签: android crash preferences sharedpreferences

我注意到如果应用程序被强制关闭或由于某种原因被系统杀死,我的应用程序的SharedPreferences会完全重置。显然,是的,我应该首先避免崩溃,但它确实发生了。如果确实发生了这种情况,用户不应丢失所有设置和使用“首选项”存储的其他数据。

我找到了this thread on Google Groups但他们无法解决它。

任何人都知道为什么或如何发生这种情况以及是否有办法阻止它?

另外,我在2.1和2.2设备上看过这个。它将在每次崩溃时发生,而不仅仅是其中一些。

由于

1 个答案:

答案 0 :(得分:9)

经过一番挖掘,我终于发现了问题的根源。通过我的代码中的错误,字符串首选项被使用null键保存。因此在崩溃后加载首选项时,首选项xml文件中有一个空白,导致首选项崩溃并被重置。出于某种原因,我没有得到首选项崩溃的堆栈跟踪,只是初始崩溃的直接原因。

只是为了添加更多细节以防其他人将来遇到类似的问题:

具有首选项的xml文件保持完整,直到强制关闭按钮按下。然而,下次访问共享首选项时,xml文件被清除并重新启动。