Мне нужно сохранить содержимое объекта в Sqlite.
Мне было интересно, какой из них лучше всего сделать с сериализацией объекта или с помощью Parcelable.
Можно ли хранить его как Parcelable? Как я могу это сделать?
Ответ 1
Вы можете преобразовать свой объект в какую-то устойчивую структуру данных (XML, JSON, Serializable) и занести ее в некоторый столбец базы данных. Имейте в виду, что вам все равно придется решать проблемы совместимости (например, версия 2 вашего приложения изменяет класс, который теперь должен иметь дело с структурами как с версией 1, так и с версией 2). Также имейте в виду, что, идя по этому маршруту, вы теряете много возможностей базы данных (например, запрашиваете что-то в объекте).
Вы также можете поэкспериментировать с объектными базами данных или CouchDb или сохранять свою устойчивую структуру данных в файл, если SQLite не является обязательным требованием.
То, что наверняка не будет работать надежно, - это влить Parcelable в Parcel и попытаться сохранить Parcel. A Parcel предназначен только для использования IPC и не предназначен для сохранения. Это одна из причин, почему Parcelable быстрее, чем Serializable.
Ответ 2
Если вам нужно сохранить данные, используйте Serializable. Parcelable предназначен для использования IPC. Это двоичный формат и не рекомендуется для сохранения.