2013-02-12 85 views
1

现有的Parcelable示例非常简单。如果你有一个复杂的对象图下面的问题出现快速质疑可行性:在Parcelable中存储复杂的对象图?

  1. 有没有被写入多个时间成一个包什么办法来防止一个对象?
  2. 在写作时是否有任何限制对象图形深度的最佳做法?

为了给出第一个问题的例子,对象A引用了B,后者又引用A.这个循环导致写入A,B,A,B,A ......直到我们得到一个StackOverflowError为止似乎没有办法引用先前写入的对象。

对于第二个问题,让我们有一个很长的图A-> B-> C-> D-> E,我们想要序列化A的深度为2,这只是A-> B- >℃。我们通过编写自定义的writeToParcelDeep方法来实现这一点,这当然不如标准writeToParcel方便。

回答

0

Java序列化将保留引用并只写一次对象。目前的设备比过去的设备功能强大得多,而且我不太确定如何编写Parcelable biolerplate代码非常复杂,如您的示例。

我会继续使用可序列化的,你可以阅读更多关于我在这个主题上的发现here