Сохранение объекта Parcelable в Android - PullRequest
4 голосов
/ 09 сентября 2011

В моем приложении для Android есть класс, который я сделал Parcelable, чтобы его можно было передавать между операциями.

Я бы хотел сохранить этот объект в файловой системе. Похоже, что поскольку я уже реализовал Parcelable, имеет смысл направить вывод этого в файловую систему и прочитать его позже.

Есть ли правильный способ сделать это? Или я должен реализовать Parcelable и Serialiazble, если я хочу одновременно передать объект между Activity и сохранить его в файловой системе?

Ответы [ 2 ]

7 голосов
/ 09 сентября 2011

С http://developer.android.com/reference/android/os/Parcel.html

Посылка не является универсальным механизмом сериализации.Этот класс (и соответствующий API Parcelable для размещения произвольных объектов в Parcel) разработан как высокопроизводительный транспорт IPC.Таким образом, нецелесообразно помещать какие-либо данные об участках в постоянное хранилище: изменения в базовой реализации любых данных в наборе могут сделать более старые данные нечитаемыми.

2 голосов
/ 09 сентября 2011

Для этой задачи я сделал следующее:

  1. Реализовано Serializable в моем объекте
  2. Добавлен метод toJSON () для преобразования объекта в объект JSON
  3. Использовал пользовательский JSONSerializer для записи объектов JSON в файл
  4. Добавлен конструктор, который принимает объект JSON в качестве параметра, используемого пользовательским JSONSerializer

Все закончилось довольно просто ... Я могу вставить пример кода, если это необходимо.

...