Android中使对象进行序列化的方法有两种:
1、实现Serializable接口,这是Java自带的一个接口,在java.io.Serializable下;
2、实现Parcelable接口,这是Android中的一个接口,在android.os.Parcelable下,使用比Serializable复杂,但效率高得多。
下面通过代码来介绍两者的使用。
1、Serializable
public class Person implements Serializable {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
传递该对象
Person person = new Person();
person.setName("张三");
Intent intent = new Intent();
intent.putExtra("person",person);
接收该对象
Person person = (Person) getIntent().getSerializableExtra("person");
2、 Parcelable
public class Person implements Parcelable {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
protected Person(Parcel in) {
name = in.readString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
}
public static final Creator<Person> CREATOR = new Creator<Person>() {
@Override
public Person createFromParcel(Parcel in) {
return new Person(in);
}
@Override
public Person[] newArray(int size) {
return new Person[size];
}
};
}
传递该对象
Person person = new Person();
person.setName("张三");
Intent intent = new Intent();
intent.putExtra("person",person);
接收该对象
Person person = getIntent().getParcelableExtra("person");