想通过Intent在不同app间传递自定义对象; public class ObjPar implements Parcelable{ private String mName; private String mAddr; private int mId; // private IBinder mBinder; public ObjPar(){ super(); } public ObjPar(Parcel par){ mName = par.readString(); mAddr = par.readString(); mId = par.readInt(); } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { // TODO Auto-generated method stub dest.writeString(mName); dest.writeString(mAddr); dest.writeInt(mId); } public static final Parcelable.Creator<ObjPar> CREATOR = new Creator<ObjPar>(){ @Override public ObjPar createFromParcel(Parcel source) { // TODO Auto-generated method stub return new ObjPar(source); } @Override public ObjPar[] newArray(int size) { // TODO Auto-generated method stub return new ObjPar[size]; } }; public String getName(){ return mName; } public void setName(String name){ mName = name; } public String getAddr(){ return mAddr; } public void setAddr(String addr){ mAddr = addr; } public int getId(){ return mId; } public void setId(int id){ mId = id; } } 用Intent传递这个对象到另一个app Intent intent = new Intent(); intent.setClassName("yu.obj", "yu.obj.Main"); Bundle bundle = new Bundle(); bundle.putParcelable("parcel", parcel); intent.putExtras(bundle); startActivity(intent); 接收端: Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if(null != bundle){ ObjPar par = bundle.getParcelable("parcel"); } 当执行到 在发送端加上: intent.setExtrasClassLoader(ObjPar.class.getClassLoader()); 问题依旧存在 |
|
40分 |
不同的APP属于不同的进程, 此时需要使用进程通信。可以使用AIDL这个东西来解决。
|
是不是可以这样理解,parcelable不能在不同进程间传递自定义类对象; |
|
基本类型。 |