Android - 可序列化接口的问题
Posted
技术标签:
【中文标题】Android - 可序列化接口的问题【英文标题】:Android - Problem with the Serializable interface 【发布时间】:2011-11-23 13:38:45 【问题描述】:我一直在使用Serializable
接口将对象从一个活动传递到另一个活动。我在发送方使用putExtra
,在接收方使用getSerializable
。一切正常,但我(第一次)收到以下错误报告:
java.lang.RuntimeException: Parcelable 读取时遇到 IOException 一个可序列化的对象
我不明白为什么会产生这个异常,因为我使用的是getSerializable
而不是getParcelable
。
我知道我应该实现 Parcelable
接口,因为它是专为 android 设计的(这就是我最终要做的),但我想了解为什么会出现此错误。
谢谢!
【问题讨论】:
【参考方案1】:此错误中提到了Parcelable
,因为您从一个Activity
发送到另一个Intent
内部有一个Bundle
,而这个Bundle
是Parcelable
。当您调用 Intent.putExtra()
时,此额外内容将添加到内部 Bundle
。当 Intent
在活动之间传递时,它的 Bundle
将转换为字节数组,您的 Serializable
对象也是如此。
但是我不知道为什么会出现这个错误。可能是因为writeObject()
/readObject()
实现中的一些错误。
【讨论】:
以上是关于Android - 可序列化接口的问题的主要内容,如果未能解决你的问题,请参考以下文章
Android :安卓学习笔记之 通过Intent传递类对象(实现Serializable和Parcelable接口)
android 怎么将一个类中的arraylist<bitmap>序列化。
Android:Parcelable 和 Serializable 之间的区别?