4

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

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

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

4

2 回答 2

7

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

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

于 2011-09-09T00:44:22.807 回答
3

对于这个问题,我做了以下事情:

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

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

于 2011-09-09T01:05:39.083 回答