2013-02-12 98 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