首先这个两个接口都是用来序列化对象的
但是两者在性能和应用场合上有区别,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]; } };