【问题标题】:Android Store a Parcelable Object in SQLiteAndroid 在 SQLite 中存储 Parcelable 对象
【发布时间】:2012-09-14 03:21:28
【问题描述】:

我需要在 Sqlite 中存储一个对象内容。 我想知道使用对象序列化还是使用 Parcelable 是最好的方法。

是否可以将其存储为 Parcelable?我该怎么做?

【问题讨论】:

  • 你真的需要将数据保存在sqlite中,保存在文件夹中不是更好吗?

标签: android sqlite parcelable


【解决方案1】:

欢迎您将对象转换为某种可持久化的数据结构(XML、JSON、Serializable)并将其填充到某个数据库列中。请记住,您仍然需要处理兼容性问题(例如,您的应用程序的版本 2 更改了一个类,现在需要处理版本 1 和版本 2 的结构)。还要记住,走这条路,您会失去很多数据库功能(例如,查询对象中的某些内容)。

如果不需要 SQLite,也欢迎您尝试对象数据库或 CouchDb,或将可持久数据结构存储到文件中。

最肯定不能可靠工作的是将Parcelable倒入Parcel并尝试存储ParcelParcel 仅供 IPC 使用,并非旨在持久保存。这也是ParcelableSerializable 快的原因之一。

【讨论】:

  • 像往常一样,完美的答案 :) 无论如何,我不知道 Serializable 对于向后兼容性有多少可扩展性。我想我会尝试通过某种压缩将数据存储在 JSON 中:)
  • @StErMi:是的,如果我走这条路,我个人会使用 JSON,或者可能是 XML,除非某些数据不可能转换为文本。当您可以实际读取数据而不是神秘的 blob 时,调试会容易得多。
【解决方案2】:

如果您需要持久化数据,请使用SerializableParcelable 用于 IPC。它是一种二进制格式,不推荐用于持久化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多