java - Parcelling complex objects b/w activities in android -
i have complex class "class11" containing socket,printwriter class references. getting exception while trying pass between activities.
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]; } }; };
though have option of sharing via static object reference, reduce coupling tried pass via intent, & got exception:
java.lang.runtimeexception: unable marshall value socket[address=/192.168.43.225,port=9990,localport=213234] @ android.os.parcel.writevalue(parcel.java:1137) @ android.os.parcel.writearray(parcel.java: 543)........
- is because socket ,printwriter not parcellable or,
- am messing code @ writetoparcel() , private class11(parcel in)
anybody has idea how pass object between activities ?
i suggest not pass object instance argument activity. make singleton, or member of application class. allow access class11 instance everywhere in app.
Comments
Post a Comment