2011-09-23 55 views
2

我一直在使用Serializable接口將對象從一個活動傳遞到另一個活動。我在發送端使用putExtra,在接收端使用getSerializable。一切工作正常,但我已經收到(首次)以下錯誤報告:Android - 可序列化接口問題

了java.lang.RuntimeException:Parcelable遇到IOException異常閱讀 Serializable對象

我不明白爲什麼自從我使用getSerializable而不是getParcelable以來,此異常已生成。

我知道我應該實現Parcelable接口,而不是因爲它專門爲Android設計的(這就是我最終要做的),但我想了解爲什麼我得到這個錯誤。

謝謝!

回答

1

Parcelable在這個錯誤,因爲你Intent從一個Activity發送到另一提到有Bundle內,這BundleParcelable。當您撥打Intent.putExtra()時,此額外內容將被添加到內部Bundle。當在活動之間傳遞Intent時,它的Bundle被轉換爲字節數組,並且從字節數組轉換爲Serializable對象。

但我不知道爲什麼會出現此錯誤。也許這是因爲writeObject()/readObject()實施中的一些錯誤。