Java 在android中打包复杂对象b/w活动
我有一个复杂的类Class11,其中包含Socket、PrintWriter类引用。 我在尝试在活动之间传递异常时遇到异常Java 在android中打包复杂对象b/w活动,java,android,sockets,serialization,parcelable,Java,Android,Sockets,Serialization,Parcelable,我有一个复杂的类Class11,其中包含Socket、PrintWriter类引用。 我在尝试在活动之间传递异常时遇到异常 public interface Interface11 extends Parcelable{ ........... } public class Class11 implements Interface11 { Socket clientSocket; ServerSocket serverSocket;
public interface Interface11 extends Parcelable{
...........
}
public class Class11 implements Interface11 {
Socket clientSocket;
ServerSocket serverSocket;
PrintWriter writer;
BufferedReader reader;
private JChatConnection(Parcel in) {
Object [] objects= in.readArray(Object.class.getClassLoader());
clientSocket=(Socket) objects[0];
serverSocket=(ServerSocket) objects[1];
writer=(PrintWriter) objects[2];
reader=(BufferedReader) objects[3];
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
Object objects[] = new Object[4];
objects[0]=clientSocket;
objects[1]=serverSocket;
objects[2]=writer;
objects[3]=reader;
dest.writeArray(objects);
}
public static final Parcelable.Creator<Class11> CREATOR =
new Parcelable.Creator<Class11>() {
public Class11 createFromParcel(Parcel in) {
return new Class11(in);
}
public Class11[] newArray(int size) {
return new Class11[size];
}
};
};
是因为插座、打印机不可打包还是,
我是不是把writeToParcel和private Class11 Parcel的代码弄乱了
有人知道如何在活动之间传递此对象吗?我建议不要将对象实例作为参数传递给活动。使其成为单例,或应用程序类的成员。这将允许您访问应用程序中任何位置的Class11实例 只是出于好奇,你的应用程序中是否也有Class1、Class2、Class3…或者那只是一个域名?这是一个残忍的企图来隐藏我的类的原始名称007的秘密。
java.lang.RuntimeException: unable to marshall value Socket[address=/192.168.43.225,port=9990,localport=213234]
at android.os.Parcel.writeValue(Parcel.java:1137)
at android.os.Parcel.writeArray(Parcel.java: 543)........