我需要在Sqlite中存储对象内容。 我想知道哪个是使用对象序列化或使用Parcelable进行此操作的最佳方式。
是否可以将其存储为Parcelable?我该怎么办?
答案 0 :(得分:35)
欢迎您将对象转换为某种可持久的数据结构(XML,JSON,Serializable
)并将其填充到某个数据库列中。请记住,您仍然需要处理兼容性问题(例如,应用程序的第2版更改了一个类,现在需要处理版本1和版本2结构)。还要记住,走这条路线,你会丢失很多数据库功能(例如,查询对象中的某些东西)。
如果不需要SQLite,也欢迎您尝试使用对象数据库或CouchDb,或将可持久数据结构存储到文件中。
肯定无法可靠运行的是将Parcelable
倒入Parcel
并尝试存储Parcel
。 Parcel
仅供IPC使用,不能保留。这是Parcelable
快于Serializable
的原因之一。
答案 1 :(得分:3)
如果您需要保留数据,请使用Serializable
。 Parcelable
用于IPC。它是二进制格式,不建议用于持久性。