Android Store Parcelable Object в SQLite - PullRequest
       20

Android Store Parcelable Object в SQLite

12 голосов
/ 17 января 2012

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

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

Ответы [ 2 ]

35 голосов
/ 17 января 2012

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

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

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

3 голосов
/ 17 января 2012

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

...