Shared Preferences - максимальная длина одного значения - PullRequest
39 голосов
/ 15 декабря 2011

Я сохраняю String в общих настройках, но не смог определить максимальную длину строки, которую я могу сохранить.Вы знаете это значение?

Ответы [ 3 ]

71 голосов
/ 15 декабря 2011

По Ромэн Гай Из вопроса Здесь задается вопрос ,

Какой бы ни была максимальная длина строки Java. Так что-то вроде Integer.MAX_VALUE символы.

Я полагаю, что SharedPreference является файлом XML, хранящимся в One Tag, если вы храните только одну пару / объект. Таким образом, нет никаких ограничений для записи String, если вы думаете, что пишете в файл .. (Теоретически)

Но На самом деле , что происходит, когда вы присваиваете значение SharedPreference , используя в то время функцию put/get, Чтение / запись значения в объекте String .. таким образом, предел становится для хранения значения, равного размеру ограничения строкового объекта Java .

Итак, при написании кода: Limit of SharedPreference String Size = Java String Object Size Limit (Практически)

17 голосов
/ 15 декабря 2011

Общие настройки хранятся в /data/data/[package_name]/shared_prefs/[app name].xml, я думаю, что без ограничений в соответствии с архитектурой Android.

3 голосов
/ 29 марта 2017

Когда я пытаюсь сохранить строку максимальной длины в SharedPreferences на моем устройстве, оно выдает исключение памяти, когда данные SharedPreferences превышают 1,42 МБ.

Так что если у вас есть размер данных более 1,42 МБ для сохранения еголучше сохранить, используя базу данных SQLite.

Согласно developer.android.com :

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

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