10

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

在 Google Groups 上找到了这个帖子,但他们无法解决。

任何人都对为什么或如何发生这种情况以及是否有办法防止这种情况有任何见解?

另外,仅供参考,我在 2.1 和 2.2 设备上看到过这个。每次崩溃都会发生这种情况,而不仅仅是其中一些。

谢谢

4

1 回答 1

10

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

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

具有首选项的 xml 文件在强制关闭按钮按下之前保持不变。然而,下次访问共享首选项时,xml 文件被清除并重新开始。

于 2011-01-26T19:21:40.397 回答