首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android共享的首选项有时会丢失

Android共享的首选项有时会丢失
EN

Stack Overflow用户
提问于 2011-10-30 14:07:47
回答 4查看 20.4K关注 0票数 24

我的应用程序的一些用户抱怨说,有时(以随机的方式)我的应用程序的设置会恢复到他们的默认状态(通常是在手机重启之后)。然而,我从未设法重现这个问题。我在想,这是因为在我的应用程序中的许多地方,我有一段代码调用共享首选项编辑器并提交更改-如果我试图同时提交对同一首选项文件的几个更改,它能解决破坏共享首选项文件的问题吗?(多线程应用程序)

我真的迷路了。我试着在网上找了几个小时,想找到一个解决方案,但没有成功。

如果任何人有任何想法,我可以开始调查,我将不胜感激。

谢谢,阿米特·莫兰

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-30 18:43:30

我会回应其他的答案-如果你不想损坏文件,你需要避免冲突-我会进一步暗示你可能误用了SharedPreferences。

SP设计用于存储有关应用程序用户设置的小片段信息,如音量或是否正在播放音乐等。

SP不是为存储频繁变化的数据和/或大量数据而设计的,尝试这样做并不是一个好主意(出于您已经发现的原因和其他一些原因)。

请记住,SP实际上只是一个XML文件-每次更改它时,您都会招致解析和重新创建的开销!

我认为,应用程序在多个线程中更新SP的想法有点疯狂--你需要一种更好的方式来管理和存储你保存的数据--它将以多种方式为你带来回报……

票数 16
EN

Stack Overflow用户

发布于 2011-10-30 14:21:02

我建议您使用单例来管理首选项。无论你是通过实现一个true java singleton,还是使用安卓的Application Context来实现这一点,都取决于你。(请参阅this question,了解支持/反对每种方法的几个很好的论点)

对于像SharedPreferences这样的东西,这是一种管理它们的好方法,特别是对于多线程应用程序。这可能会消除一些关于提交是否相互冲突的问题。这可能不是问题的全部,但它是开始的地方。

票数 1
EN

Stack Overflow用户

发布于 2012-03-23 18:32:05

我有一个类似的问题:我的偏好没有可靠地保存。在一些设备上(在我的例子中是XOOM-Tablet),数据有时会丢失,有时不会。在提交新数据之前,我只需在编辑器上调用clear()就解决了这个问题。

Shared Preferences get lost after shutting down device or killing the app

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7943573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档