Подтвердить что ты не робот

Android Храните пакетный объект в SQLite

Мне нужно сохранить содержимое объекта в Sqlite. Мне было интересно, какой из них лучше всего сделать с сериализацией объекта или с помощью Parcelable.

Можно ли хранить его как Parcelable? Как я могу это сделать?

4b9b3361

Ответ 1

Вы можете преобразовать свой объект в какую-то устойчивую структуру данных (XML, JSON, Serializable) и занести ее в некоторый столбец базы данных. Имейте в виду, что вам все равно придется решать проблемы совместимости (например, версия 2 вашего приложения изменяет класс, который теперь должен иметь дело с структурами как с версией 1, так и с версией 2). Также имейте в виду, что, идя по этому маршруту, вы теряете много возможностей базы данных (например, запрашиваете что-то в объекте).

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

То, что наверняка не будет работать надежно, - это влить Parcelable в Parcel и попытаться сохранить Parcel. A Parcel предназначен только для использования IPC и не предназначен для сохранения. Это одна из причин, почему Parcelable быстрее, чем Serializable.

Ответ 2

Если вам нужно сохранить данные, используйте Serializable. Parcelable предназначен для использования IPC. Это двоичный формат и не рекомендуется для сохранения.