SharedPreferences хранит данные в парах ключ-значение. Он хранит их в основном в оперативной памяти, но также сохраняет копию во внутреннем хранилище. Android предоставляет ОЗУ для хранения вашего кода, всей графики и любых временных данных, и это ограничено. Если вы храните много пар ключ-значение (и, возможно, значения длинные String
s), вы действительно можете использовать всю оперативную память для своего приложения и в итоге получить OutOfMemoryException
. Это указывает на то, что SharedPreference, вероятно, не является правильным методом для данных, которые вы пытаетесь сохранить.
Вместо этого внутреннее хранилище полностью основано на флэш-памяти. Приложения имеют меньше ограничений, и они могут хранить большие объемы данных, таких как изображения. Внутреннее хранилище похоже на каталог, поэтому вы создаете файлы, читаете / записываете их, удаляете их и т. Д., Поэтому оно отличается от пар ключ-значение.