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设置弹出键盘与View的交互方式[学习]
  2. android实现文件下载的几种方式
  3. android 打开 url 方式
  4. Android中自定义Dialog常用的两种方式
  5. Android创建和删除桌面快捷方式
  6. Android中创建和检测快捷方式
  7. Android常用屏幕适配方式
  8. 【原创】Android 4.4前后版本读取图库图片方式的变化

随机推荐

  1. 向量自回归VAR模型操作指南针,为微观面板
  2. 有限混合模型FMM,异质性分组分析的新筹码
  3. 条件Logit绝对不输多项Logit,而混合模型
  4. 广义PSM,连续政策变量因果识别的不二利器
  5. 政策评估中"中介效应"因果分析, 有趣的前
  6. 腾讯云 TDSQL 审计原理揭秘
  7. JavaScript基础之 变量与常量的声明、函
  8. Jupyter Notebook主题设置
  9. 20201230 python数据类型
  10. 20201230 pyc是什么