Android

关注公众号 jb51net

关闭
首页 > 软件编程 > Android > android序列化过程Parcelable

很详细的android序列化过程Parcelable

作者:夏操

这篇文章主要为大家详细介绍了很详细的android序列化过程Parcelable,代码注释很详细,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了android序列化过程Parcelable的具体代码,供大家参考,具体内容如下

直接上代码:注释都写的很清楚了。

public class Entry implements Parcelable{
public int userID;
public String username;
public boolean isMale;
public Book book;//序列化对象可以嵌套序列化对象,前提是2个类的对象都被序列号过
//几乎所有情况下都返回0,可以不管
@Override
public int describeContents() {
return 0;
}
//序列化对象,将对象写到序列号数据结构中
//flags:大多数情况为0
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeInt(userID);
out.writeString(username);
out.writeInt(isMale ? 1:0);
out.writeParcelable(book, 0);
// out.writeList(list);也可以序列号list和Map,前提是list和Map里面的数据都是可序列号的
// out.writeMap(Map);
}
public Entry(int userID,String username,boolean isMale) {
this.userID = userID;
this.username = username;
this.isMale = isMale;
}
//反序列化
public static final Parcelable.Creator<Entry> CREATOR = new Creator<Entry>() {
//创建指定长度的原始对象数组
@Override
public Entry[] newArray(int size) {
// TODO Auto-generated method stub
return new Entry[size];
}
//从序列号过后的对象中创建原始对象
@Override
public Entry createFromParcel(Parcel source) {
// TODO Auto-generated method stub
return new Entry(source);
}
};
//从序列号后的对象中创建原始对象
private Entry(Parcel in){
userID = in.readInt();
username = in.readString();
isMale = in.readInt() == 1;
in.readParcelable(Thread.currentThread().getContextClassLoader());
}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文