在Android中保留Parcelable对象

时间:2011-09-09 00:38:34

标签: java android serializable parcelable

我的Android应用程序中有一个类,我已经制作了Parcelable,以便可以在各个活动之间传递。

我希望能够将此对象保存到文件系统中。似乎既然我已经实现了Parcelable,那么将它的输出传递给文件系统并稍后再读回它是有意义的。

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

2 个答案:

答案 0 :(得分:7)

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

  

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

答案 1 :(得分:2)

对于这个问题,我做了以下几点:

  1. 在我的对象中实现Serializable
  2. 添加了一个toJSON()方法,将对象转换为JSON对象
  3. 使用自定义JSONSerializer将JSON对象写入文件
  4. 添加了一个构造函数,该构造函数将JSON对象作为参数,由自定义JSONSerializer使用
  5. 最终非常简单......如果需要,我可以粘贴一些示例代码。