-
Parcelable接口
Parcelable的实例可以被写入和恢复一个 Parcel类。一个类实现Parcelable接口也必须有一个公开的静态的常态的字段CREATOR,这是实现 Parcelable.Creator 的对象。
实现Parcelable案例:
public class Student implements Parcelable { private String name;// 你要序列化的数据 private int age;// 你要序列化的数据 public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } // get和set方法,略 // ... <span style="color:#ff9966;">// 注意修饰符public static final都必须要有,名字CREATOR也是固定的,不能改成小写或其他名字</span> public static final Parcelable.Creator<Student> CREATOR = new Parcelable.Creator<Student>() { @Override public Student createFromParcel(Parcel in) { return new Student(in); } @Override public Student[] newArray(int size) { return new Student[size]; } }; // 注意这个构造方法是私有的 private Student(Parcel in) { <span style="color:#ff9966;">// 数据读取的顺序要和写入时保持一致</span> name = in.readString(); age = in.readInt(); } // 描叙内容,不用管 @Override public int describeContents() { return 0; } <span style="color:#ff9966;">// 将数据写入Parcel中,Parcel对象似于一个双向流,既可以写入又可以读取</span> @Override public void writeToParcel(Parcel out, int flags) { out.writeString(name); out.writeInt(age); } }
Parcelable是一种类似于Serializable的序列化接口,效率比Serializable略高效,但不能使用Parcelable将数据存储在磁盘上,而只能序列化到内存中(只能代替DataOutputStream和DataInputStream),因为Parcelable不能很好的保证数据的持续性,所以Parcelable主要用于Intent数据传递,也可以用于进程间通信。
Parcelable接口介绍与使用
时间:2024-3-2 18:32 作者:韩俊 分类: Android
标签: android