SharedPreferences для сериализации? - PullRequest
0 голосов
/ 09 февраля 2011

Я довольно новичок в разработке под Android и пытаюсь научиться чему-то вроде хобби-проекта. Мое приложение имеет относительно небольшое количество состояний, которые необходимо сохранить для основного действия, чтобы приложение возобновило работу должным образом. Более того, поскольку мое приложение синхронизируется с веб-приложением, у меня уже есть логика сериализации на основе JSON для всех состояний, которые я могу сохранить. Хорошо ли использовать SharedPreferences для хранения относительно небольших (~ несколько КиБ) строк, которые сериализуют объекты? Было бы лучше просто использовать внутреннее хранилище и записать в текстовый файл? Спасибо за совет!

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Общие префы - это хороший способ сохранить данные такого рода.Я не знаю, что было бы лучше об использовании файла во внутренней памяти.(Если бы данных было много, я бы подумал об использовании файла на SD-карте.)

0 голосов
/ 02 марта 2011

Общие префы используются для хранения пар «имя-значение», например, в виде предпочтений. Формат, используемый для хранения этих данных, представляет собой простой XML-файл:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="id1">text1</string>
<string name="id2">textb</string>
<string name="id3">text</string>
</map>

Таким образом, когда ваша строка имеет размер всего несколько килобайт, результирующее (xml-) отношение накладных расходов к данным не так хорошо, как при хранении больших строк в одной структуре. В этом случае хранение небольших наборов данных более эффективно с использованием, например, простой структуры JSON (Вы все равно используете json libs?!).

Другим недостатком является то, что вы не можете получить доступ к XML-файлам как к объекту Java, так что вы не можете удалить их.

...