在Parcelable中存储复杂的对象图?

时间:2013-02-12 15:35:11

标签: android parcelable

现有的Parcelable示例相当简单。如果您有一个复杂的对象图,那么很快就会出现以下问题:

  1. 有没有办法阻止对象多次写入一个包裹?
  2. 写作时是否有限制对象图形深度的最佳实践?
  3. 为了给出第一个问题的例子,对象A引用B,它又引用A.这个循环导致写A,B,A,B,A,...直到我们得到StackOverflowError,因为没有似乎是一种只引用先前写过的对象的方法。

    对于第二个问题,我们有一个长图A-> B-> C-> D-> E,我们希望序列化A的附加深度为2,这将只是A- > B-&℃。我们通过编写自定义的writeToParcelDeep方法来做到这一点,这当然不如标准的writeToParcel方便。

1 个答案:

答案 0 :(得分:0)

Java序列化将保留引用并只写一次对象。目前的设备比过去的设备功能强大得多,而且我不太确定性能增益是否可以证明编写Parcelable biolerplate代码特别复杂,如你的例子所示。

我将继续使用序列化,您可以阅读有关此主题的here的更多相关内容。