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

Java 是否可以序列化包含usbManager和usbDevice等属性的类?,java,android,android-activity,usb,Java,Android,Android Activity,Usb,我有一个类,用于配置与外部设备的Usb连接。它在我的活动android上运行正常,但我想将其传递给另一个活动,但我不能这样做。我试图序列化该类以传递给另一个活动,但当我调用startactivity时,另一个活动出现异常 这就是我调用活动的时候: Intent lights = new Intent(this, Screen2Activity.class); lights.putExtra("usb", usb); startActivity(lights); 例外情况是: java.lang

我有一个类,用于配置与外部设备的Usb连接。它在我的活动android上运行正常,但我想将其传递给另一个活动,但我不能这样做。我试图序列化该类以传递给另一个活动,但当我调用startactivity时,另一个活动出现异常

这就是我调用活动的时候:

Intent lights = new Intent(this, Screen2Activity.class);
lights.putExtra("usb", usb);
startActivity(lights);
例外情况是: java.lang.RuntimeException:Parcelable在写入序列化时遇到IOException 对象(名称=com.example.vcontrol.Usb)

这是我的班级:

//-----------------------------------------------------------
//
// 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;
...

有人能帮我吗?

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

问:非常重要的问题??究竟什么是例外

我猜是
java.IO.NotSerializableException

如果是这样,您基本上有两个选择:

1) 修改类,使其实现可序列化

。。。或者

2) 扩展类,并使新的子类实现可序列化

详情如下:

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

谢谢你的更新!我相信这就是解决办法

//示例“序列化”
Bundle=新Bundle();
bundle.putSerializable(“值”,所有的拇指);
意向。额外支出(捆绑);
//“反序列化”示例
Intent=this.getIntent();
Bundle=intent.getExtras();
竖起大拇指=
(列表)bundle.getSerializable(“值”);

好啊谢谢一个疑问。。。要序列化类,我是否只需要在类中放置“implements Serializable”?我刚做了这个!我需要知道这些元素(Usbmanager和usbDevice)是否可以序列化!:)
// Example "serialize"
Bundle bundle = new Bundle();  
bundle.putSerializable("value", all_thumbs);
intent.putExtras(bundle);

// Example "deserialize"
Intent intent=this.getIntent();
Bundle bundle=intent.getExtras();

List<Thumbnail> thumbs=
               (List<Thumbnail>)bundle.getSerializable("value");