我在Android上开发了一款游戏。我目前正在保存数据库中的大部分游戏统计数据。但是,该应用程序不会在数据库中使用多个行。我现在有兴趣介绍一些新的统计数据,但这会导致我的数据库重新安装,从而清除每个人的进度。为了在将来避免这种情况,我正在考虑使用SharedPreferences存储游戏统计数据。我的问题是,在成为问题之前,可以通过这种方式存储多少种不同的东西。总的来说,我将存储大约40个值,所有整数。
答案 0 :(得分:21)
SharedPreferences被写入xml文件,因此Android上文件的最大大小是SharedPreferences xml文件的大小。我可以肯定地说,40个整数值不会成为问题。
SharedPreferences文件中值的最大大小限制为您尝试存储的值的最大大小。 (这意味着你不能把比String更长的String值放在Java中。)
我唯一建议的是确保尽可能批量编辑(意味着不要.commit()
每次更改),也不要为每次更改创建新的编辑器。 (这些只是很好的做法。)
SharedPreferences settings = getSharedPreferences(PREFS_FILE_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("firstValue", mFirst);
editor.putInt("secondValue", mSecond);
editor.putInt("thirdValue", mThird);
// Commit the edits! (As infrequently as possible)
editor.commit();
答案 1 :(得分:7)
我不知道任何限制,但关于你的问题,每个人的进步都被消灭了。您可以覆盖SQLite类中的onUpgrade方法,然后将每个人数据迁移到较新的数据库。
答案 2 :(得分:0)
如其他答案所述,共享首选项实际上仅受手机存储和简单性的限制。
答案 3 :(得分:0)
请勿将共享偏好设置用于游戏数据。我可以下载您的游戏,并使用下面的工具对其进行破解。如果您的钱存放在那里,我将其更改为420万金币并称其为好。
https://www.kingoapp.com/root-tutorials/hack-app-game-cheat-droid.htm
是什么阻止某人使用共享的首选项编辑器来编辑XML文件?
我无法相信没人回答您的问题。您的限制在视频游戏设置中非常重要。没有什么能阻止任何人编辑他们所有的共享首选项数据来破解游戏的毛病。