Ограничения Android SharedPreferences?

Я разработал игру на Android. Я в настоящее время сохраняю большую часть игровой статистики в Базе данных. Однако приложение не использует больше, чем одна строка в DB. Я теперь интересуюсь представлением некоторой новой статистики, но это заставит мой DB переустанавливать и таким образом убирать общий успех. Для предотвращения этого в будущем, я рассматриваю хранение игровой статистики с SharedPreferences вместо этого. Мой вопрос состоит в том, сколько разных вещей может быть сохранено тот путь, прежде чем это станет проблемой. Всего я сохранил бы приблизительно 40 значений, все целые числа.

13
задан Tim 8 July 2010 в 00:33
поделиться

2 ответа

SharedPreferences записываются в XML-файлы, поэтому максимальный размер файла на Android - это размер XML-файла SharedPreferences. Могу с уверенностью сказать, что 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();
22
ответ дан 1 December 2019 в 20:42
поделиться

Я не знаю ни о каких ограничениях, кроме вашей проблемы с уничтожением всех прогрессов. Вы можете переопределить метод onUpgrade в своем классе SQLite, а затем перенести все данные в новую базу данных.

7
ответ дан 1 December 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: