android 很詳細的序列化過程Parcelable

來源:互聯網
上載者:User

標籤:

直接上代碼:注釋都寫的很清楚了。

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());
}

}

android 很詳細的序列化過程Parcelable

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.