使用Parcelable序列化数据

使用Parcelable序列化数据,

1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable。

2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。

public class MediaPreviewInfo implements Parcelable { public static final int MEDIA_TYPE_INVALID = -1; public static final int MEDIA_TYPE_IMAGE = 1; public static final int MEDIA_TYPE_VIDEO = 2; public int type = MEDIA_TYPE_INVALID; public String imageUrl = null; public String videoUrl = null; public String videoLocalPath = null; public MediaPreviewInfo() { } public MediaPreviewInfo(JSONObject json) { if (json != null) { type = json.optInt("type", MEDIA_TYPE_INVALID); imageUrl = json.optString("image"); videoUrl = json.optString("video"); videoLocalPath = DynamicAvatarDownloadManager.getDynamicAvatarFilePath(videoUrl); } } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flag) { dest.writeInt(type); dest.writeString(imageUrl); dest.writeString(videoUrl); dest.writeString(videoLocalPath); } public static final Parcelable.Creator<MediaPreviewInfo> CREATOR = new Creator<MediaPreviewInfo>() { @Override public MediaPreviewInfo[] newArray(int size) { return new MediaPreviewInfo[size]; } @Override public MediaPreviewInfo createFromParcel(Parcel source) { MediaPreviewInfo mediaInfo = new MediaPreviewInfo(); mediaInfo.type = source.readInt(); mediaInfo.imageUrl = source.readString(); mediaInfo.videoUrl = source.readString(); mediaInfo.videoLocalPath = source.readString(); return mediaInfo; } }; @Override public String toString() { return new StringBuffer("type = ").append(type).append(", imageUrl = ").append(imageUrl) .append(", videoUrl = ").append(videoUrl) .append(", videoLocalPath = ").append(videoLocalPath).toString(); }; }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值