在使用Parcelable对android中数据的序列化操作还是比较有用的,有人做过通过对比Serializable和Parcelable在android中序列化操作对象的速度比对,大概Parcelable相比Serializable要快10倍左右、、、给一个连接可以瞅瞅他们序列化的区别http://greenrobot.me/devpost/android-parcelable-serializable/


下面来总结一下我们基本数据类型、对象、数组、list等做Parcelable的方法,主要是做个总结直接看下code

package com.suning.mobile.paysdk.pay;import java.util.ArrayList;import android.os.Parcel;import android.os.Parcelable;import com.yaya.test.OrderInfoBean;/** *  * 〈一句话功能简述〉<br> * 〈功能详细描述〉 数据类型序列化 */public class ParcelableType implements Parcelable {    /** int 类型 */    int age;    /** String 类型 */    String name;    /** boolean 注意该boolean的get和set方法 **/    boolean isGood;    /** boolean 类型 **/    boolean complete;    /** 数组 **/    private String[] ids;    /** 对象 [内部已经序列化] **/    private OrderInfoBean bean;    /** list **/    private ArrayList<OrderInfoBean> listBeans;    /**     * 默认构造方法     */    public ParcelableType() {        // TODO Auto-generated constructor stub    }    public ParcelableType(Parcel in) {        readFromParcel(in);    }    /***     * 默认实现     */    @Override    public int describeContents() {        // TODO Auto-generated method stub        return 0;    }    @Override    public void writeToParcel(Parcel dest, int flags) {        /** int 写入 **/        dest.writeInt(age);        /** string 写入 **/        dest.writeString(name);        /** boolean 写入 **/        dest.writeInt(isGood ? 1 : 0);        /** boolean 写入 **/        dest.writeInt(complete ? 1 : 0);        /** 数组 写入 **/        if (ids != null) {            dest.writeInt(ids.length);        } else {            dest.writeInt(0);        }        dest.writeStringArray(ids);        /** 对象 写入 **/        dest.writeParcelable(bean, flags);        /** list 写入 **/        dest.writeList(listBeans);    }    @SuppressWarnings("unchecked")    private void readFromParcel(Parcel in) {        /** int 读出 */        age = in.readInt();        /** stirng 读出 */        name = in.readString();        /** boolean 读出 */        isGood = (in.readInt() == 1) ? true : false;        /** boolean 读出 */        complete = (in.readInt() == 1) ? true : false;        /** 数组 读出 */        int length = in.readInt();        ids = new String[length];        in.readStringArray(ids);        /** 对象 读出 */        bean = in.readParcelable(OrderInfoBean.class.getClassLoader());        /** list 读出 */        listBeans = in.readArrayList(OrderInfoBean.class.getClassLoader());    }    public static final Parcelable.Creator<ParcelableType> CREATOR = new Parcelable.Creator<ParcelableType>() {        public ParcelableType createFromParcel(Parcel in) {            return new ParcelableType(in);        }        public ParcelableType[] newArray(int size) {            return new ParcelableType[size];        }    };    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    /**     *      * 功能描述: <br>     * 〈功能详细描述〉 fastJson解析时需要格式     */    public boolean isIsGood() {        return isGood;    }    public void setIsGood(boolean isGood) {        this.isGood = isGood;    }    public boolean isComplete() {        return complete;    }    public void setComplete(boolean complete) {        this.complete = complete;    }    public String[] getIds() {        return ids;    }    public void setIds(String[] ids) {        this.ids = ids;    }    public OrderInfoBean getBean() {        return bean;    }    public void setBean(OrderInfoBean bean) {        this.bean = bean;    }    public ArrayList<OrderInfoBean> getListBeans() {        return listBeans;    }    public void setListBeans(ArrayList<OrderInfoBean> listBeans) {        this.listBeans = listBeans;    }}



更多相关文章

  1. Android实现简单拨打电话功能
  2. Android调用平台功能具体技巧分享
  3. Android 照相功能
  4. android 图片浏览功能 图片放大缩小 使用 photoview 双击或双指
  5. android 拼音字母搜索联系人以及实现多选功能
  6. JavaEye Android client 收藏管理功能
  7. Android仿微信小视频录制功能

随机推荐

  1. Android(安卓)ARM 汇编学习(一)
  2. PullToRefresh的简单使用
  3. Android文件浏览器的开发
  4. Android ADB 端口占用问题解决方案
  5. android之实现底部TabHost
  6. android adb 通过adb连接制定设备
  7. Android上调用google map api v2
  8. android布局参照示例_约束布局Android示
  9. Android Studio:Fetching android sdk co
  10. android aidl