【问题标题】:Persisting a Parcelable object in Android在 Android 中持久化 Parcelable 对象
【发布时间】:2011-11-13 10:29:46
【问题描述】:

我的 Android 应用中有一个类,我已将其设为 Parcelable,以便可以在活动之间传递。

我希望能够将此对象保存到文件系统。似乎因为我已经实现了 Parcelable,所以将它的输出通过管道传输到文件系统并稍后再读回来是有意义的。

有没有正确的方法来做到这一点?或者,如果我想在活动之间传递对象并将其保存到文件系统,我必须同时实现 Parcelable 和 Serialiazble 吗?

【问题讨论】:

    标签: java android serializable parcelable


    【解决方案1】:

    来自http://developer.android.com/reference/android/os/Parcel.html

    Parcel 不是通用的序列化机制。此类(以及用于将任意对象放入 Parcel 的相应 Parcelable API)被设计为高性能 IPC 传输。因此,将任何 Parcel 数据放入持久存储是不合适的:Parcel 中任何数据的底层实现发生变化都可能导致旧数据不可读。

    【讨论】:

      【解决方案2】:

      针对这个问题,我做了以下操作:

      1. 在我的对象中实现了 Serializable
      2. 添加了 toJSON() 方法将对象转换为 JSON 对象
      3. 使用自定义 JSONSerializer 将 JSON 对象写入文件
      4. 添加了一个将 JSON 对象作为参数的构造函数,供自定义 JSONSerializer 使用

      结果非常简单...如果需要,我可以粘贴一些示例代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-14
        • 1970-01-01
        • 2011-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多