Android序列化包括两种:Java的Serializable、Android自己的Parcelable。推荐使用Android系统自带的Parcelable。

Serializable方式

只需使对象实现Serialzable接口即可

假设Person类已经实现 Serializable接口

  • 传输Person对象
 intent.putExtra("person_data", person);
  • 接收序列化对象
Person person = (Person) getIntent().getSerializableExtra("person_data");

Parcelable方式

Parcel :This class is designed as a high-performance IPC transport

Parcelable方式是把对象写成Parcel(小包),核心的类其实是Parcel。Parcelable定义的一系列接口就是是把对象分解成Parcel、把Parcel还原为对象。

Interface for classes whose instances can be written to and restored from a Parcel. Classes implementing the Parcelable interface must also have a non-null static field called CREATOR of a type that implements the Parcelable.Creator interface.

Parcelable除了该实现的抽象方法(分解对象为Parcel),还要必须要包含一个非空静态域,叫做CREATOR(把Parcel还原为对象)

public class Person implements Parcelable {            private String name;            private int age;            ……            @Override            public int describeContents() {                return 0;            }            //写出对象为Parcel            @Override            public void writeToParcel(Parcel dest, int flags) {                dest.writeString(name); //  写出name                dest.writeInt(age); //  写出age            }            //非空静态域,还原Parcel为对象            public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {                @Override                //从Parcel还原                public Person createFromParcel(Parcel source) {                    Person person = new Person();                    person.name = source.readString(); //  读取name                    person.age = source.readInt(); //  读取age                    return person;                }                @Override                public Person[] newArray(int size) {                    return new Person[size];                }            };        }
  • 传输Person对象
 intent.putExtra("person_data", person);
  • 接收序列化对象
Person person = (Person) getIntent().getParcelableExtra("person_data");

更多相关文章

  1. Android中的线程
  2. Android设置弹出键盘与View的交互方式[学习]
  3. Android的消息机制,用Android线程间通信的Message机制,Android中Ha
  4. android中怎么在文字两边划线
  5. Android(安卓)-- Context(Application的应用)
  6. android中怎么在文字两边划线
  7. android实现文件下载的几种方式
  8. android 打开 url 方式
  9. android 拍照

随机推荐

  1. android ksoap2调用.net Webservice 方法
  2. 关于build.gradle的写法
  3. Android Skia和2D图形系统
  4. Android 获取时间戳 和时间戳转日期
  5. android ScreenCapture
  6. Android 之Java动态生成View
  7. Android(安卓)Studio调试技巧(基于Android
  8. Android下常用的正则表达式判断工具类代
  9. android去掉标题和状态栏的方法
  10. Android 获取未安装的APK图标、版本号、