【麦子学院】Android Parcelable接口使用方法详解.pdf

【麦子学院】Android Parcelable接口使用方法详解.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【麦子学院】Android Parcelable接口使用方法详解

IT 在线教育平台———麦子学院: 【麦子学院】Android Parcelable 接口使用方法详解 在 Android 开发中,我们会遇到各种各样情况,比如如何将对象保存在本地磁盘或网 络上传输等。其实,实现序列化的方式有两种方式,分别是实现 Serializable 接口和实现 Parcelable ,今天小编和大家介绍的就是Android 序列化中 Parcelable 接口的使用。 Serializable 接口与 Parcelable 接口的区别 在将 Parcelable 接口的使用前,我们先来看看 Serializable 接口和 Parcelable 接口有什 么区别: 1、Serializable 是 JDK 提供的接口,而 Parcelable 是 Android SDK 提供的。 2、Serializable 序列化是基于磁盘的,而 Parcelable 是基于内存的。在内存中读写的效率 要高于磁盘,所以Android 中跨进程传递对象都是使用 Parcelable。 Parcelable 接口定义 public interface Parcelable { // 内容描述接口,基本不用管 public int describeContents(); //写入接口函数,打包 public void writeToParcel(Parcel dest, int flags); //读取接口,目的是要从 Parcel 中构造一个实现了 Parcelable 的类的实例处理。因为实 现类在这里还是不可知的,所以需要用到模板的方式,继承类名通过模板参数传入。 //为了能够实现模板参数的传入,这里定义 Creator 嵌入接口,内含两个接口函数分别 返回单个和多个继承类实例。 public interface CreatorT { public T createFromParcel(Parcel source); public T[] newArray(int size); } IT 在线教育平台———麦子学院: 从 parcelable 接口定义中,我们可以看出,实现 parcelable 接口,我们需要实现下面 几个方法: 1.describeContents 方法。内容接口描述,默认返回 0 就可以; 2.writeToParcel 方法。该方法将类的数据写入外部提供的 Parcel 中。即打包需要传递的数 据到 Parcel 容器保存,以便从 parcel 容器获取数据,该方法声明如下: writeToParcel (Parcel dest, int flags) 具体参数含义见javadoc 3、静态的 Parcelable.Creator 接口,本接口有两个方法: createFromParcel(Parcel in) 从 Parcel 容器中读取传递数据值,封装成 Parcelable 对 象返回逻辑层。 newArray(int size) 创建一个类型为T ,长度为size 的数组,仅一句话(return new T[size])即可。方法是供外部类反序列化本类数组使用。 Parcelable 接口的使用 public class AppContent implements Serializable, Parcelable { //应用名字 private String name; //应用下载链接 private String url; private int downloadPercent = 0; private Status status = Status.PENDING; public AppContent(String name, String url) { = name; this.url = url; } public String getName() { return name; } public void setName(String name) { IT 在线教育平台———麦子学院: = name; } public String getUrl() { return url; } public void s

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档