我在Android上开发了一款游戏。我目前正在将大部分游戏统计数据保存在数据库中。但是,该应用程序的使用不超过DB中的一行。我现在有兴趣引入一些新的统计数据,但这将导致我的数据库重新安装,从而清除每个人的进步。为了避免这种情况,我正在考虑将游戏统计数据存储使用共享流程。我的问题是,在问题成为问题之前,可以以这种方式存储多少个不同的东西。总共我将存储大约40个值,所有整数。

有帮助吗?

解决方案

共享Preferences写入XML文件,因此Android上的文件的最大大小是共享Preferences XML文件的大小。我可以肯定地说,40个整数值不是问题。

在共享流程文件中,值的最大大小仅限于您尝试存储的值的最大大小。 (这意味着您不能放置比字符串更长的字符串值在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();

其他提示

我不知道任何局限性,但是关于您的问题,每个人都会消除。您可以覆盖SQLite类中的Onupgrade方法,然后将每个人的数据迁移到较新的数据库中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top