在Activity中使用方法:

1)传递单一对象,具体代码如下:

// parcelable对象传递方法

public void setParcelableMethod() {

Person person = new Person();

person.setmName("王海康");

person.setmSex("男");

person.setmAge(45);

Intent intent = new Intent(this, PersonTest.class);

Bundle bundle = new Bundle();

bundle.putParcelable(PAR_KEY, person);

intent.putExtras(bundle);

startActivity(intent);

}

// parcelable对象获取方法

public Person getParcelableMethod(){

Person mPerson = (Person)getIntent().getParcelableExtra(PAR_KEY);

return mPerson;

}

2)传递对象列表,具体代码如下:

需要注意的是,若ListpersonList = new ArrayList();则会报错,因为下面调用的putParcelableArrayList()函数其中一个参数的类型为ArrayList。

// parcelable对象List传递方法

public void setParcelableListMethod() {

ArrayList personList = new ArrayList();

Person person1 = new Person();

person1.setmName("王海康");

person1.setmSex("男");

person1.setmAge(45);

personList.add(person1);

Person person2 = new Person();

person2.setmName("薛岳");

person2.setmSex("男");

person2.setmAge(15);

personList.add(person2);

Intent intent = new Intent(this, PersonTest.class);

Bundle bundle = new Bundle();

bundle.putParcelableArrayList(PAR_LIST_KEY, personList);

intent.putExtras(bundle);

startActivity(intent);

}

// parcelable对象获取方法

public ArrayList getParcelableMethod(){

ArrayList mPersonList = getIntent().getParcelableExtra(PAR_LIST_KEY);

return mPersonList;

}

3)最后介绍一个投机取巧的方法:

不用继承Parcelable或Serializable方法即可实现IPC中对象的传递。这种方法的实现原理不是很明白,只知道代码中new ArrayList()返回的其实是一个EmptyArray.OBJECT数组,不过我感觉应该还是系统调用Serializable进行序列化的,如果各位读者有好的想法,欢迎告知。

具体代码如下:

//对象List传递

public void setObjectMethod(){

......(省略)

ArrayList list = new ArrayList();

//ObjectList为某一对象列表

list.add(ObjectList);

bundle.putParcelableArrayList(PAR_LIST_KEY, list);

intent.putExtras(bundle);

startActivity(intent);

}

//获取对象List

ArrayList list = bundle.getParcelableArrayList("list");

//强转成你自己定义的list,这样ObjectList就是你传过来的那个list了。

ObjectList= (List) list.get(0);

android序列化好处,浅谈Android序列化相关推荐

  1. android fps 垂直同步,浅谈Android流畅度

    原标题:浅谈Android流畅度 哈哈 讲个故事 白 1 流畅度 关于流畅度谷歌官方给出的解释为:running at a consistent 60 frames per second, witho ...

  2. android 存储空间监控,浅谈 Android 内存监控(中)

    前言 在上篇 浅谈 Android 内存监控(上) 中,我们聊了 LeakCanary,微信的 Matirx 和美团的 Probe,它们各自有不同的应用场景,例如,在开发测试环境,我们会偏向用 Lea ...

  3. 高通android逆向分析,浅谈Android高通(Qualcomm)和联发科(MTK)平台

    一款CPU好不好是要从多个方面考虑的,并不是说简简单单看一个主频.几个核心数就完了,更重要的是它的综合实力到底有多强,这里面当然也会牵扯到价格问题,性能相似当然是便宜的获胜,这是毋庸置疑的. 事实上, ...

  4. Android 改造无线电,浅谈Android平台的物联网网关方案设计

    提出了一种基于Android平台的物联网网关方案.该网关通过蓝牙串口通信实现物联网中WSN (无线传感器网络)中心节点和Android网关的数据传输,在Android平台上实现WSN节点信息管理并通过 ...

  5. 浅谈Android Architecture Components

    浅谈Android Architecture Components 浅谈Android Architecture Components 简介 Android Architecture Componen ...

  6. 浅谈Android保护技术__代码混淆

    浅谈Android保护技术__代码混淆 浅谈Android保护技术__代码混淆 代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读 ...

  7. 浅谈Android SDK开发

    目录 浅谈Android SDK开发 SDK开发的原则 SDK设计 功能与职责边界设计 接口设计 兼容性设计 发布输出设计 SDK文档设计 SDK项目架构 组件化.模块化 统一资源管理 第三方依赖管理 ...

  8. 浅谈Android文件管理器的几种实现方式(原理篇)--对我有帮助

    转自 https://blog.csdn.net/weixin_33698823/article/details/87269955 浅谈Android文件管理器的几种实现方式 为了完成毕业设计,我花费 ...

  9. 浅谈Android引用计数(2)

    在浅谈Android引用计数(1)中讲了LightRefBase实现对象计数管理的原理,这篇文章将要分析重量级的引用基类:RefBase的实现和它的作用. 下面是RefBase和相关类的类图: 图中可 ...

最新文章

  1. 心音数据库_小V云端数据库 | 2020.9.14—2020.9.18
  2. 深入Jetty源码之HTTP协议
  3. 编译执行和解释执行的区别
  4. nginx 中location中root和alias的区别
  5. cocos creator 多张图片 椭圆运动_信阳液位测量图片
  6. 生于凛冬的私募资产配置基金管理人能否秽土转生?
  7. php ioncube encoder,Ioncube PHP Encoder
  8. 物联网是什么,华为云学院带你走进物联网的前世今生
  9. java 三边求面积_已知三角形的三边长如何求面积?
  10. 计算多个不同鞋码对应的脚长——C语言
  11. Python实现b''开头二进制字符串转换为str的utf-8
  12. python哈姆雷特字数统计_python 哈姆雷特 字数统计 词云
  13. 决策树分类原理(一)26
  14. 【第一章】浅谈游戏作弊类型与核心原理
  15. 流星汇聚:跨境电商几大主流电商平台势均力敌,卖家如何选择?
  16. win7 下使用超级终端
  17. 百度2015春季实习生招聘附加题
  18. 中国医科大学计算机本科在线作业,16春中国医科大学《计算机应用基础(本科)》在线作业答案...
  19. mac php.ini 配置,Mac上PHP的配置 | Soo Smart!
  20. 利用EXCEL批量提取超链接

热门文章

  1. 微信公众平台开发(47)公交查询
  2. [转]项目管理有感之一 沟通
  3. 自由动力论坛一枝花,全靠汇道童鞋来当家
  4. 现在的挂黑链外链链接的手法非常的高级
  5. 程序员的算法课(9)-常见字符串算法
  6. python语法箭头_Python中的函数注释:参数有冒号,声明后有- 箭头
  7. Mozilla 开源支持计划:首批捐助 7 开源项目 50 万美元
  8. 前端技术学习之选择器(十三)
  9. C/C++二维数组分配内存
  10. uva 10077 - The Stern-Brocot Number System