一.基本介紹
Parcelable是Android提供的序列化接口 類(lèi)似Serializable,但是使用比Serializable復(fù)雜
二.使用方法
1.創(chuàng)建一個(gè)類(lèi)Student實(shí)現(xiàn)Parcelable接口
2.實(shí)現(xiàn)接口中describeContents、writeToParcel方法
public class Student implements Parcelable {
private int id;
private int age;
private String name;
protected Student(Parcel in) {
this.id = in.readInt();
this.age = in.readInt();
this.name = in.readString();
}
public static final Creator<Student> CREATOR = new Creator<Student>() {
@Override
public Student createFromParcel(Parcel in) {
return new Student(in);
}
@Override
public Student[] newArray(int size) {
return new Student[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
//寫(xiě)入數(shù)據(jù)的順序和Student讀取的數(shù)據(jù)順序要是一致的
parcel.writeInt(id);
parcel.writeInt(age);
parcel.writeString(name);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* 這個(gè)方法不是必須的 和service進(jìn)行跨進(jìn)程通信 生成AIDL的時(shí)候要求有這個(gè)方法
* @param desc
*/
public void readFromParcel(Parcel desc) {
this.id = desc.readInt();
this.age = desc.readInt();
this.name = desc.readString();
}
}