很详细的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()); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。