平时的序列化对象大家一般都直接用java的Serializable 的形式,简单方便写的快
android 也有出自己的一套Parcelable 写起来比较复杂,但是有些地方又必须要用到,比如aidl传递对象的时候
在此小结下
2、Parcelable 操作,其实也简单,就2步
1、写入序列化 重写public WsUserInfoAM(Parcel src) {
2、读出序列化 实现该对象中的两个构造对象,和构造对象组的方法
public static final Parcelable.Creator<TT> CREATOR = new Creator<TT>() {
3、描述方法可以忽略public int describeContents() {
4、写入时的顺序和读出的顺序要一致
3、example
package com.wstv.pay.aidl;
import android.os.Parcel;
import android.os.Parcelable;
public class Info implements Parcelable{
private String uid;
private String tokrnId;
private String ext;
public String getExt() {
return ext;
}
public void setExt(String ext) {
this.ext = ext;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getTokrnId() {
return tokrnId;
}
public void setTokrnId(String tokrnId) {
this.tokrnId = tokrnId;
}
public Info(){
}
public Info(Parcel src) {
// TODO Auto-generated constructor stub
uid = src.readString();
tokrnId = src.readString();
}
//0就可以
@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(uid);
dest.writeString(tokrnId);
}
//读出序列化
public static final Parcelable.Creator
CREATOR = new Creator
() {
@Override
public Info createFromParcel(Parcel source) {
// TODO Auto-generated method stub
return new Info(source);
}
@Override
public Info[] newArray(int size) {
// TODO Auto-generated method stub
return new Info[size];
}
};
@Override
public String toString() {
return "WsUserInfo [uid=" + uid + ", tokrnId=" + tokrnId + ", ext=" + ext + "]";
}
}