首先这个两个接口都是用来序列化对象的
但是两者在性能和应用场合上有区别,parcelable的性能更好,但是在需要保存或者网络传输的时候需要选择Serializable因为parcelable版本在不同版本可能不同
实现方面,serializable直接实现接口无需实现任何接口,只需要提供一个版本ID
而parcelable需要实现几个方法
// 写数据进行保存
public void writeToParcel(Parcel out, int flags)
{
out.writeInt(mData);
out.writeString(mStr);
}
// 读数据进行恢复
private MyParcelable(Parcel in)
{
mData = in.readInt();
mStr = in.readString();
}
// 用来创建自定义的Parcelable的对象
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
} public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};