本章主要讲Parcelable
- Parcelable 是Android SDK提供的,基于内存,由于内存的读写速度高于磁盘,因此在Android中跨进程对象的传递一般使用Parcelable
-
Parcelable 的读写需要写大量的模板,不易于维护。在Android Studio中安装Android Parcelable code generator的插件。
11.png
安装完成,需要重启。
/**
* @author Administrator
*/
public class BookItem {
public String mName;
public String mLastTime;
public String mTitle;
public String mPath;
}
![](https://img.haomeiwen.com/i5475657/f6d7facad7d0bdc2.png)
Parcelable 接口实现的几个方法
- describeContents 描述接口的内容
- writeToParcel 将类的数据写入到Parcel容器中
- 静态Parcelable.Creator接口
createFromParcel:反序列化的方法,将Parcel还原成Java对象
newArray : 提供给外部类反序列化这个数组使用
**
* @author Administrator
*/
public class BookItem implements Parcelable {
public String mName;
public String mLastTime;
public String mTitle;
public String mPath;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.mName);
dest.writeString(this.mLastTime);
dest.writeString(this.mTitle);
dest.writeString(this.mPath);
}
public BookItem() {
}
protected BookItem(Parcel in) {
this.mName = in.readString();
this.mLastTime = in.readString();
this.mTitle = in.readString();
this.mPath = in.readString();
}
public static final Parcelable.Creator<BookItem> CREATOR = new Parcelable.Creator<BookItem>() {
@Override
public BookItem createFromParcel(Parcel source) {
return new BookItem(source);
}
@Override
public BookItem[] newArray(int size) {
return new BookItem[size];
}
};
}
网友评论