Parcelable 类,接口类,用于数据的序列化封装。常见的Bundle,Intent类都实现了该类。

 
实现该类需要实现writeToParcel和describeContents方法,最后还需要实现一个静态接口Creator

延伸下:为何需要数据的序列化?
数据的传输和保存时,如果一个对象A引用了另一个对象B,那么如果我们需要保存两个对象A,B,用普通的数据保存则是要进行保存两次B,但是通过序列化则不会,序列化会在保存前先给对象编号,然后在保存时遍历前面,如果存在则标记为已保存。
序列化的定义是将对象或者类,序列化成可以传输的流,从而可以传送给别人使用。所以运用在IPC,网络传输,文件存储。
序列化可以通过实现Serializable 和 Parcelable来实现。
Serializable Java自带,效率低,但是可以存储到本地。
parcelable Android自有,效率高,不可存储本地。
 
 
附一个简易的Parcelable类的实现
public class MyParcel implements Parcelable {
       
        private int mIntData ;
        private String mStringData ;
       
        public MyParcel() {
              // TODO Auto-generated constructor stub
       }
        public MyParcel(Parcel in){
              mIntData = in.readInt();
              mStringData = in.readString();
             
       }
       
        public String getStringData(){
              return mStringData ;
       }
        public void setStringData(String data){
              mStringData = data;
       }
        @Override
        public int describeContents() {
              // TODO Auto-generated method stub
              return 0;
       }
 
        @Override
        public void writeToParcel(Parcel dest, int flags) {
              // TODO Auto-generated method stub
             dest.writeInt( mIntData);
             dest.writeString( mStringData);
       }
 
        public static final Parcelable .Creator<MyParcel> CREATOR = new Parcelable.Creator<MyParcel>() {
 
              @Override
              public MyParcel createFromParcel(Parcel source) {
                     // TODO Auto-generated method stub
                     return new MyParcel(source);
             }
 
              @Override
              public MyParcel[] newArray(int size) {
                     // TODO Auto-generated method stub
                     return new MyParcel[size];
             }
       };
}

Parcelable 小记的更多相关文章

  1. [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...

  2. 对 Serializable和Parcelable理解

    1.首先他们两个接口都是为了实现对象的序列化,使之可以传递,所谓序列化就是将对象信息装换成可以存储的介质的过程. 2.Serializable是jdk所提供的序列化接口,该接口存在于io包下,可想用于 ...

  3. Parcelable序列化的使用,关于intent.getParcelableArrayExtra的使用

    Parcelable相较于Serializable的效率更高 public class ChargeMode implements Parcelable{ public String name; pu ...

  4. MySql 小记

    MySql  简单 小记 以备查看 1.sql概述 1.什么是sql? 2.sql发展过程? 3.sql标准与方言的关系? 4.常用数据库? 5.MySql数据库安装? 2.关键概念 表结构----- ...

  5. Android 的Parcelable接口

    此文转载自http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html 1. Parcelable接口 Interface ...

  6. Git小记

    Git简~介 Git是一个分布式版本控制系统,其他的版本控制系统我只用过SVN,但用的时间不长.大家都知道,分布式的好处多多,而且分布式已经包含了集中式的几乎所有功能.Linus创造Git的传奇经历就 ...

  7. 广州PostgreSQL用户会技术交流会小记 2015-9-19

    广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...

  8. 东哥读书小记 之 《MacTalk人生元编程》

         一直以来的自我感觉:自己是个记性偏弱的人.反正从小读书就喜欢做笔记(可自己的字写得巨丑无比,尼玛不科学呀),抄书这事儿真的就常发生俺的身上. 因为那时经常要背诵课文之类,反正为了怕自己忘记, ...

  9. Paypal支付小记

    Paypal支付小记 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impo ...

随机推荐

  1. 通过改进团队流程最大限度发挥Scrum的优势

    团队如何最大限度地发挥Scrum和敏捷的优势? 回想一下,Scrum团队在Scrum的框架内定义了自己的流程.这其中包括方法.工具和互动以及如何履行Scrum角色的职责.如何使用工件和事件等. 如何确 ...

  2. 堪称神器的Chrome插件

    前言 相信很多人都在使用 Chrome 浏览器,其流畅的浏览体验得到了不少用户的偏爱,但流畅只是一方面, Chrome 最大的优势还是其支持众多强大好用的扩展程序(Extensions).最近为了更好 ...

  3. Django-restframework 之认证源码分析

    Django-restframework 源码分析之认证 前言 最近学习了 django 的一个 restframework 框架,对于里面的执行流程产生了兴趣,经过昨天一晚上初步搞清楚了执行流程(部 ...

  4. 设计模式 | 观察者模式/发布-订阅模式(observer/publish-subscribe)

    定义: 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己. 结构:(书中图,侵删) 一个抽象的观察者接口, ...

  5. 【原】无脑操作:Centos 7后台运行及终止jar包程序

    1.后台运行jar包程序,输入:nohup java -jar /路径/程序.jar & 2.后台终止jar包程序,输入:ps -ef | grep java,查看使用java命令的进程,再输 ...

  6. String字符串创建与存储机制

    Java内存可以粗略的区分为堆内存(Heap)和栈内存(Stack),堆中存放的是对象实例,而栈中存放的则是方法调用过程中的局部变量或引用等. 在Java语言中,字符串的生命与初始化有如下两种方式: ...

  7. mybatis入门系列二之输入与输出参数

    mybatis入门系列二之详解输入与输出参数   基础知识   mybatis规定mapp.xml中每一个SQL语句形式上只能有一个@parameterType和一个@resultType 1. 返回 ...

  8. ubuntu-18.04 安装zsh的方法步骤

    zsh是一款跨平台的轻量级的终端,功能十分强大,会极大地提升你的工作效率.安装指南: ➜ ~ sudo apt-get install zsh ➜ ~ zsh --version #确认是否安装成功 ...

  9. 配置中心框架IConfCenter

    本篇和大家分享的是一个简易配置中心框架IConfCenter,框架是利用空余时间写的,主要以配置文件+redis存储方式作为数据同步驱动,目前支持的配置文件格式有 .properties 和 .con ...

  10. Vue.js-02:第二章 - 常见的指令的使用

    一.前言 在上一章中,我们了解了一些在使用 Vue 进行开发中经常会遇到的基础概念,与传统的前端开发不同,Vue 可以使我们不必再使用 JavaScript 去操作 DOM 元素(还是可以用,但是极度 ...