Java 是否可以序列化包含usbManager和usbDevice等属性的类?
我有一个类,用于配置与外部设备的Usb连接。它在我的活动android上运行正常,但我想将其传递给另一个活动,但我不能这样做。我试图序列化该类以传递给另一个活动,但当我调用startactivity时,另一个活动出现异常 这就是我调用活动的时候: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
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");