Android SharedPreferences Limit - PullRequest
       0

Android SharedPreferences Limit

0 голосов
/ 30 сентября 2011

Я ищу максимальное значение ключа SharedPreferences для Android, пары значений, но не могу найти хорошего ответа.Во-вторых, я хочу спросить, есть ли у меня ключ, каково его предельное значение String.Сколько персонажа можно вложить в это.Если мне нужно часто выбирать значение, я должен использовать SQLite или SharedPreferences.Пожалуйста, передайте мне несколько хороших ресурсов.

Ваш,

Ответы [ 4 ]

4 голосов
/ 30 сентября 2011

Все общие префы хранятся в / data / data / [имя пакета] / shared_prefs / [имя приложения] .xml , поэтому я думаю, что нет никаких ограничений на основе архитектуры.

Я не знаю практического ограничения, но я думаю, что этого достаточно для вас ..

Проверьте Общее предпочтение для справки.

 should I use SQLite or SharedPreferences. 

Гораздо лучше использовать SQLite , если вам нужно хранить значения, которые будут периодически меняться.Также вы можете хранить больше данных ..

1 голос
/ 21 мая 2018

После Справочник разработчика Android похоже, что ключ, значение и имя узла имеют каждое максимальное значение.

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

0 голосов
/ 28 июня 2016

Что касается ограничения размера ключа: я считаю, что это просто максимальный размер строки. Здесь также есть ответ: Shared Preferences - максимальная длина одного значения

Максимальное количество пар ключ / значение: с помощью предпочтений Shared эти значения хранятся в XML-файлах, как указано в ответе выше, и вы можете иметь несколько XML-файлов sharePreference. Предполагаемый предел размера ограничен размером вашего приложения или объемом памяти, доступным на устройстве с помощью вашего приложения.

Если ваши значения предпочтений часто меняются, я хотел бы рассмотреть возможность использования локальных переменных для отслеживания текущего набора предпочтений, возможно, глобального одноэлементного класса. И сохраните изменения на диске, прежде чем приложение будет уничтожено / закрыто. Если вам не нравится эта идея, попробуйте использовать SharedPreferences, но обязательно используйте SharedPreferences.Editor.apply () вместо SharedPreferences.Editor.commit () для сохранения предпочтений (применить сохранения к диску асинхронно, выполнить сохранение синхронно).

0 голосов
/ 11 февраля 2014

SharedPreferences предназначены для быстрого хранения значений, таких как отдельные строки, настройки, флаги и т. Д. База данных SQLite может делать то же самое, но немного сложнее, подумайте о хранении таблиц информации, таких как данные клиентов, с несколькими свойствами и возможностью поиска(Запрос в SQL).

Итак, ответ таков: «это зависит» от того, что «что-то» вы хотите сохранить?Если это пользовательская настройка, то SharedPreferences является быстрым и простым.Если это набор записей, то база данных SQLite может иметь больше смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...