Android Intent 实战:如何传递Serializable与Parcelable对象
PDF格式 | 56KB |
更新于2024-08-28
| 99 浏览量 | 举报
"这篇教程详细介绍了在Android开发中如何通过Intent传递对象的两种主要方法:使用Bundle.putSerializable()和Bundle.putParcelable()。这两种方法都依赖于特定的对象实现,前者需要对象实现Serializable接口,后者则需要对象实现Parcelable接口。文中通过创建名为ObjectTestDemo的示例工程,展示了如何在实际应用中进行操作。在main.xml布局文件中添加了两个按钮,分别对应这两种传递方式。"
在Android开发中,Intent是应用程序之间以及组件之间通信的重要手段。当我们需要在Intent中传递自定义对象时,有两种主要的方法:
1. **使用Serializable接口**:
- 当对象实现了Serializable接口时,我们可以使用`Bundle.putSerializable(Key, Object)`方法来将对象放入Bundle中,进而附加到Intent上。Serializable是Java提供的一个序列化接口,它允许对象的状态被转换成字节流,以便存储或在网络上传输。然而,这种方式相对较慢,因为序列化和反序列化的过程涉及大量IO操作,不适用于大量数据或者频繁传递的情况。
2. **使用Parcelable接口**:
- 如果对象实现了Parcelable接口,那么可以使用`Bundle.putParcelable(Key, Object)`方法。Parcelable接口是Android系统提供的一种更高效的数据传递机制。与Serializable相比,Parcelable在性能上显著优越,因为它避免了IO操作,而是直接在内存中进行数据拷贝。然而,实现Parcelable接口比实现Serializable接口复杂,需要编写更多的代码。
在给出的示例工程ObjectTestDemo中,作者创建了一个简单的布局文件main.xml,包含了两个按钮。第一个按钮(button1)用于使用Serializable方法传递对象,第二个按钮(button2)则使用Parcelable方法。当用户点击按钮时,相应的对象传递逻辑会被触发,这通常涉及到创建新的Activity或者更新当前Activity的状态。
为了实现这个功能,你需要:
- 创建自定义对象,并确保它们实现了Serializable或Parcelable接口。
- 在按钮的点击事件监听器中,根据选择的传递方式,将对象放入Bundle,然后使用`Intent.putExtra()`方法。
- 在接收端,通过`Intent.getSerializableExtra()`或`Intent.getParcelableExtra()`方法获取传递过来的对象。
总结来说,Android中的Intent传递对象是通过序列化或Parcelable接口实现的。尽管Serializable接口使用简单,但Parcelable提供了更好的性能,尤其适合处理大量数据或高性能场景。开发者应根据具体需求和性能考虑选择合适的方法。
相关推荐
weixin_38672840
- 粉丝: 9
- 资源: 893
最新资源
- Ps基本功能PPT,附带简单的技巧讲解
- 电脑硬件故障引起系统问题
- 关于LCD的一些知识
- 自动测试 IBM Rational 技术白皮书
- cmake 学习教程
- protues学习教程
- XP下的JDK安装.DOC
- Fedora-10-Installation-Configration-FAQ-Update-1
- Fedora-10-Installaion_Configuration-FAQ
- linux驱动程序设计入门简洁教程
- C与C++中的异常处理
- SCJP 1.6 TestInside真题(中文,台湾人译的)
- 基于单片机控制的自动往返小汽车新设计.pdf
- 中兴公司CDMA原理
- EJB 3 In Action - Manning
- 水晶报表用户指南 9.0