Serializable 和 parcelable的实现和比较

首先这个两个接口都是用来序列化对象的

但是两者在性能和应用场合上有区别,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];
         }
     };
posted @ 2015-03-02 21:54  u3  阅读(330)  评论(0编辑  收藏  举报