【问题标题】:Java Android SharedPreferences issuesJava Android SharedPreferences 问题
【发布时间】:2013-05-13 08:12:05
【问题描述】:
我正在 android 上制作俄罗斯方块游戏作为学校项目,现在我使用共享偏好来保存游戏的当前状态,以便以后可以恢复,我来了要意识到当您存储超过 100 个左右的首选项时,sharedprefernces 对象开始以一种奇怪的方式工作,我可以保存所有内容,但是当我尝试调用编辑器清除(e.clear + e.commit)时,它不会删除首选项。
我将不胜感激有关此问题的任何帮助
谢谢
【问题讨论】:
标签:
java
android
sharedpreferences
【解决方案1】:
SharedPreferences 是很好的轻量级机制,如何持久化数据。
但我认为对于游戏来说这根本不是一场胜利。 SharedPreferences 通常用于保存非结构化数据,例如,如果您有一些需要登录的应用程序,当用户成功登录时,您可以将此状态保存到 SharedPreferences,然后在接下来的 Activities 中检查用户是否登录与否。但是在游戏中,你(我猜是肯定的)有结构化的数据结构(例如玩家和他们的属性(值),比如得分、输、赢等)。
所以我建议您考虑另一种数据持久化机制。具体尝试考虑使用经典对象序列化或SQLiteDatabase 的使用的可能性,这提供了更复杂的解决方案如何持久化结构化数据。
一个主要优点是您可以持久化(序列化)整个对象,然后简单地反序列化它们(而不是将它们持久化为 SharedPreferences 中的特定“块”)。关于SQLite,它提供了与经典序列化几乎相同的解决方案,但对象在数据库中表示为表。