我做了一个小安卓游戏,我在保存总分时遇到了问题,应该在每次应用再次启动时检索,而不是像往常一样从默认0开始。
我查看了SharedPreferences,但这似乎更多是为了保存不会发生变化的高分。
有没有办法让我保存一个分数,这个分数会随着更多游戏的播放而改变?
我认为我需要做以下事情:
编辑:原来,SharedPreferences适用于这种情况。现在有人可以提供一个如何实施它的答案吗?
答案 0 :(得分:3)
我相信你可以为此目的使用共享偏好。 它可用于保存您的分数,覆盖分数并检索分数。 共享首选项使用Key值对。
答案 1 :(得分:0)
我不确定为什么你会得出结论,SharedPreferences更适合不变的值。 我认为这是一个很好的用例。
您可以尝试其他持久性选项(例如将SQLite集成到您的应用中),但这似乎是最快的选项,而开销最少。
尽管如此,如果您对其他选项感兴趣,我希望您已经浏览了Android文档中的存储选项:
http://developer.android.com/guide/topics/data/data-storage.html
当然,使用SharedPreferences必须与Application LifeCycle方法一起完成(例如onResume,onPause等): http://developer.android.com/training/basics/activity-lifecycle/index.html
答案 2 :(得分:0)
您可以使用SQLite数据库来保存分数值。 要检索数据库中的当前分数,请使用此查询。
SELECT score from ScoreTable where id = userId;
将检索值分配给变量。
在游戏结束时//更新分数值
int finalScore = initialscore + newScore
UPDATE ScoreTable SET score = finalScore WHERE id = userId