我一直在使用Serializable
接口将对象从一个活动传递到另一个活动。我在发送方使用putExtra
,在接收方使用getSerializable
。一切正常,但我收到(第一次)以下错误报告:
java.lang.RuntimeException:Parcelable遇到IOException读取 一个Serializable对象
我不明白为什么我使用getSerializable
而不是getParcelable
生成了此异常。
我知道我应该实现Parcelable
界面,因为它是专为Android设计的(这就是我最终会做的)但我想知道为什么我会收到此错误。
谢谢!
答案 0 :(得分:1)
Parcelable
,因为您从一个Intent
发送到另一个Activity
的{{1}}内部有Bundle
,Bundle
为Parcelable
}}。当您致电Intent.putExtra()
时,此额外内容会添加到内部Bundle
。在活动之间传递Intent
时,Bundle
将与字节数组进行转换,因此Serializable
对象也是如此。
但我不知道为什么会出现这种错误。也许是因为writeObject()
/ readObject()
实施中的一些错误。