Android中Parcelable接口的使用

2015-11-10 13:45:24 · 作者: · 浏览: 6

Serializable与Parcelable的区别


1、Serializable是JDK提供的接口,而Parcelable是Android SDK提供的。


2、Serializable序列化是基于磁盘的,而Parcelable是基于内存的。在内存中读写肯定效率要高于磁盘,所以Android中跨进程传递对象都是使用Parcelable。


Parcelable接口定义


从parcelable接口定义中,我们可以看到,实现parcelable接口,需要我们实现下面几个方法:


1.describeContents方法。内容接口描述,默认返回0就可以;


2.writeToParcel 方法。该方法将类的数据写入外部提供的Parcel中.即打包需要传递的数据到Parcel容器保存,以便从parcel容器获取数据,该方法声明如下:


writeToParcel (Parcel dest, int flags) 具体参数含义见javadoc


3.静态的Parcelable.Creator接口,本接口有两个方法:


createFromParcel(Parcel in)? 从Parcel容器中读取传递数据值,封装成Parcelable对象返回逻辑层。


newArray(int size) 创建一个类型为T,长度为size的数组,仅一句话(return new T[size])即可。方法是供外部类反序列化本类数组使用。


Parcelable的使用


  通过Intent进行传递: