首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以序列化包含usbManager和usbDevice等属性的类?

是否可以序列化包含usbManager和usbDevice等属性的类?
EN

Stack Overflow用户
提问于 2013-12-28 03:28:37
回答 2查看 143关注 0票数 0

我使用这个类来配置与外部设备的Usb连接。它在我的activity android上运行正常,但我想把它传递给另一个activity,但我不能这么做。我试图序列化这个类以传递给另一个活动,但是当我调用startactivity时,另一个活动出现了异常。

这是我调用activity的时候:

代码语言:javascript
复制
Intent lights = new Intent(this, Screen2Activity.class);
lights.putExtra("usb", usb);
startActivity(lights);

例外情况是: java.lang.RuntimeException: Parcelable在写入可序列化对象时遇到IOException (名称= com.example.vcontrol.Usb)

这是我的班级:

代码语言:javascript
复制
//-----------------------------------------------------------
//
// Class that configures and communicates with the Usb Port
//
//-----------------------------------------------------------

public class Usb implements Serializable {

//USB Parameters and Controls
private UsbManager usbManager = null;
private UsbDeviceConnection conn = null;
private UsbDevice device = null;
private UsbInterface usbIf = null;
private UsbEndpoint epIN = null;
private UsbEndpoint epOUT = null;
...

有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2013-12-28 03:30:17

是的,只有当它们是可串行化的时,如果你不能控制类,那么你就不走运了。

票数 0
EN

Stack Overflow用户

发布于 2013-12-28 06:49:19

问:非常重要的问题……??例外情况到底是什么?

我猜是java.IO.NotSerializableException

如果是这样的话,你基本上有两个选择:

1)修改您的类,使其实现Serializable

..。或者..。

2)扩展你的类,让新的子类实现Serializable。

以下是更多详细信息:

http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html

http://www.vogella.com/articles/JavaSerialization/article.html

============附录============

感谢您的更新!我相信这就是解决之道

Passing data through intent using Serializable

//示例序列化捆绑包(List)bundle.getSerializable("value"); = new Bundle();bundle.putSerializable("value",all_thumbs);intent.putExtras(捆绑包);//示例反序列化意图intent=this.getIntent();捆绑包bundle=intent.getExtras();List thumbs= bundle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20806627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档