2011-09-09 35 views
3

我在我的Android应用程序中有一个类,它使Parcelable可以在活动之间传递。在Android中支持Parcelable对象

我希望能够将此对象保存到文件系统。看起来,因为我已经实现了Parcelable,所以将其输出传递给文件系统并稍后再读取它是有意义的。

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

回答

7

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

包裹不是通用的序列化机制。该类(以及用于将任意对象放入Parcel的相应Parcelable API)被设计为高性能IPC传输。因此,将任何Parcel数据放入持久性存储中是不恰当的:Parcel中任何数据的底层实现中的更改都会导致旧数据无法读取。

2

对于这个问题,我做了以下内容:

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

它最终变得非常简单......如果需要,我可以粘贴一些示例代码。

+2

请粘贴一些代码 –