很详细的android序列化过程Parcelable
直接上代码:注释都写的很清楚了。
publicclassEntryimplementsParcelable{
publicintuserID;
publicStringusername;
publicbooleanisMale;
publicBookbook;//序列化对象可以嵌套序列化对象,前提是2个类的对象都被序列号过
//几乎所有情况下都返回0,可以不管
@Override
publicintdescribeContents(){
return0;
}
//序列化对象,将对象写到序列号数据结构中
//flags:大多数情况为0
@Override
publicvoidwriteToParcel(Parcelout,intflags){
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);
}
publicEntry(intuserID,Stringusername,booleanisMale){
this.userID=userID;
this.username=username;
this.isMale=isMale;
}
//反序列化
publicstaticfinalParcelable.Creator<Entry>CREATOR=newCreator<Entry>(){
//创建指定长度的原始对象数组
@Override
publicEntry[]newArray(intsize){
//TODOAuto-generatedmethodstub
returnnewEntry[size];
}
//从序列号过后的对象中创建原始对象
@Override
publicEntrycreateFromParcel(Parcelsource){
//TODOAuto-generatedmethodstub
returnnewEntry(source);
}
};
//从序列号后的对象中创建原始对象
privateEntry(Parcelin){
userID=in.readInt();
username=in.readString();
isMale=in.readInt()==1;
in.readParcelable(Thread.currentThread().getContextClassLoader());
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。