很详细的android序列化过程Parcelable

时间:2021-05-19

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

public class Entry implements Parcelable{public int userID;public String username;public boolean isMale;public Book book;//序列化对象可以嵌套序列化对象,前提是2个类的对象都被序列号过//几乎所有情况下都返回0,可以不管@Overridepublic int describeContents() {return 0;}//序列化对象,将对象写到序列号数据结构中//flags:大多数情况为0@Overridepublic 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>() {//创建指定长度的原始对象数组@Overridepublic Entry[] newArray(int size) {// TODO Auto-generated method stubreturn new Entry[size];}//从序列号过后的对象中创建原始对象@Overridepublic Entry createFromParcel(Parcel source) {// TODO Auto-generated method stubreturn new Entry(source);}};//从序列号后的对象中创建原始对象private Entry(Parcel in){userID = in.readInt();username = in.readString();isMale = in.readInt() == 1;in.readParcelable(Thread.currentThread().getContextClassLoader());}}

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章