2011-12-15 2 views
24

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

Благодаря

Точек

+0

Если он действительно огромный, например, более 10 килобайт, вы можете сохранить его каким-либо другим способом, возможно, файл на диске. – Fred

ответ

53

По Romain Guy от вопроса Asked Here,

Независимо максимальная длина строки Java есть. Итак, что-то вроде Целочисленные символы.MAX_VALUE.

Предположим, что SharedPreferene - это XML-файл, хранящийся в одном теге, если вы храните только одну пару/объект. Таким образом, нет никаких ограничений для записи строки в том, что если вы думаете, как вы пишете в файле .. (Theoratically)

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

Поэтому пока сочинительство код: Предел SharedPreference Струнный Size = Строка Java Object Size Limit (практически)

+1

'Integer.MAX_VALUE' - 2147483647. – Fred

14

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

0

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

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

Согласно developer.android. «Если у вас относительно небольшая коллекция значений ключа, которые вы хотите сохранить, вы должны использовать API SharedPreferences».