Вопрос

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

Это было полезно?

Решение

ShareDPreferences записываются в файлы XML, поэтому максимальный размер файла на Android - насколько большой файл XML-файла SharedPreferences может быть. Я могу безопасно сказать, что 40 целочисленных ценностей не будут проблемой.

Максимальный размер значения в файле SharedPreferences ограничен максимальным размером значения, который вы пытаетесь хранить. (Это означает, что вы не можете поставить строковое значение, которое дольше, чем строки могут быть в 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();

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top