2012-01-17 6 views
10

私はオブジェクトのコンテンツをSqliteに格納する必要があります。 オブジェクトの直列化またはParcelableを使って、どちらが最良の方法であるのか疑問に思っていました。AndroidはSQLiteにParcelableオブジェクトを格納します

Parcelableとして保存することはできますか?どうしたらいいですか?

+0

あなたは本当にsqliteでデータを保持する必要がありますフォルダーに保管する方が良いでしょうか? – ademar111190

答えて

32

オブジェクトを永続化可能なデータ構造(XML、JSON、Serializable)に変換して、データベースの列に埋め込むことを歓迎します。互換性の問題に対処する必要があることにご留意ください(アプリのバージョン2ではクラスが変更され、バージョン1とバージョン2の両方の構造に対応する必要があります)。また、このルートを使用すると、多くのデータベース機能(オブジェクト内の何かを照会するなど)が失われることにも注意してください。

SQLiteが必須でない場合は、オブジェクトデータベースまたはCouchDbを使用するか、永続化可能なデータ構造をファイルに格納することもできます。

確かに確実に動作しないものは、ParcelParcelableを注ぎ、Parcelを保存してみてください。 Parcelは、IPCのみを対象としており、永続化するようには設計されていません。これはParcelableSerializableより速い理由の1つです。

+0

いつものように、完璧な答え:)とにかく、Serializableが後方互換性のためにスケーラブルであるかどうかはわかりません。 – StErMi

+1

@StErMi:もし私が個人的にJSONやおそらくXMLを使うことになってしまったのであれば、データの中にはおそらくデータの一部ができない限りテキストに変換する。それは、あなたが実際にデータを読むことができるときに、それが謎のブロブではなく、簡単にデバッグすることです。 – CommonsWare

+0

あなたは完全に正しいです:)私は試してみましょう:) – StErMi

3

データを保持する必要がある場合は、Serializableを使用してください。 Parcelableは、IPCの使用を目的としています。これはバイナリ形式であり、永続性には推奨されません。

関連する問題