android中在各个service或者acitivity之间可以通过Intent来传递一些数据,intent原生直接提供了一些简单数据类型的数据的传递,使用起来也很方便,比如int boolean 和 string等,当然还可能传递这些类型的数组形式已经list形式;

  但在我们的使用往往希望可以传递一些自定义的类对象,目前通过intent可以通过两种形式,Serializable 或者 Parcelable

  Serializable 是java原有接口,而Parcelable是android封装过的,据说比Serializable要高效一点;android的官方文档也推荐使用Parcelable接口;

Serializable

  使用非常简单,要传递的类对象所对应的类名后增加 implents Serializable 即可,内部不需要再进行其他接口的实现;

  但是有一点要特别注意,因为是序列化,所以如果要传递的类是一个内部类,一定要将该类设置为static,否则使用上会有问题,当然前提是该类可以写成静态,如果不行就单独拎出去一个文件一个类;我在使用时,就遇到了这个问题,折腾好久。

Parcelable

  使用上比较麻烦,除了要implents Parcelable,还需要在类里面实现一些Parcelable的接口,如下:

    Parcelable.Creator<XXXXXX> CREATOR    = new Parcelable.Creator<XXXXXX>()

    XXXXXX为你的类名;

  还要实现 writeToParcel 接口,两个接口的里面实现的数据读取顺序要一致.

android中通过intent传递复杂数据的更多相关文章

  1. Android开发经验之—intent传递大数据

    在Activity或者组件之前传递信息时,一般採用intent绑定bundle的方式传值,但在使用过程中须要注意的是不要用bundle传递大容量数据: 在做项目的过程中,须要将听写界面的听写结果信息传 ...

  2. 关于Android中获取Intent里的数据

    Intent获取数据和发送数据的办法: //直接通过Intent发送 intent.putExtra("name","wytings"); //直接通过Inte ...

  3. Xamarin Android 中Acitvity如何传递数据

    在xamarin android的开发中,activity传递数据非常常见,下面我也来记一下在android中activity之间传递数据的几种方式, Xamarin Android中Activity ...

  4. Activity之间使用intent传递大量数据带来问题总结

    转载:大飞 http://blog.csdn.net/rflyee/article/details/47441405   Activity之间使用Parcel传递大量数据产生的问题. Activity ...

  5. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  6. android中的事件传递和处理机制

    一直以来,都被android中的事件传递和处理机制深深的困扰!今天特意来好好的探讨一下.现在的感觉是,只要你理解到位,其实事件的 传递和处理机制并没有想象中的那么难.总之,不要自己打击自己,要相信自己 ...

  7. Android中使用File文件进行数据存储

    Android中使用File文件进行数据存储 上一篇学到使用SharedPerences进行数据存储,接下来学习一下使用File进行存储 我们有时候可以将数据直接以文件的形式保存在设备中, 例如:文本 ...

  8. Android中使用Gson解析JSON数据

      Android中使用Gson解析JSON数据 在Android中可以使用Gson解析JSON数据 首先,从 code.google.com/p/google-gson/downloads/list ...

  9. Android 开发中使用Intent传递数据的方法

    Activity之间通过Intent传递值,支持基本数据类型和String对象及 它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.shor ...

随机推荐

  1. 【Github教程】:github入门到精通

    [初识Github] 首先让我们大家一起喊一句"Hello Github".YEAH!就是这样. 原文 http://www.eoeandroid.com/thread-27455 ...

  2. java有时候String a="zz"出现String cannot be resolved to a variable

    原因很简单在String a="zz"前面有些该注释的没注释导致

  3. NSString 多行的写法和区别

    NSString *str = @"aaaa\ aaaa\ bbbb\ aaaa"; NSString *str1 = @"bbbb" "cccc&q ...

  4. 版本视图找不到数据 EDITIONING VIEW

    Oracle database 12 以后的版本,特别在EBS R12.2.X加入了版本视图这种技术,跟MOAC有点像. CREATE OR REPLACE FORCE EDITIONING VIEW ...

  5. C++ 并发编程,std::unique_lock与std::lock_guard区别示例

    背景 平时看代码时,也会使用到std::lock_guard,但是std::unique_lock用的比较少.在看并发编程,这里总结一下.方便后续使用. std::unique_lock也可以提供自动 ...

  6. Linux系统中安装使用百度云网盘

    百度云没有Linux客户端,于是有大神用Go语言写出来一个叫BaiduPCS-Go的命令行盘客户端,可以通过终端操作百度云盘,在Linux上实现上传下载.但是因为是命令行版本的,对没有命令行使用基础的 ...

  7. EBS测试环境DataGuard配置

    1.环境信息 primary数据库(必须运行在归档模式) ip 127.71.28.71 sid test db_unique_name test log_mode archivelog force_ ...

  8. 快捷切换hosts的小工具:SwitchHosts!

    Windows 绿色版本下载:http://oldj.github.io/SwitchHosts/. 日常开发工作中,我们可能经常需要切换各种 hosts 绑定,比如在本地开发时可能需要一个开发环境的 ...

  9. Ext4 ReiserFS Btrfs 等7种文件系统性能比拼

    2009年02月04日     为了满足广大群众的热切需求,今天做了 Ext2.Ext3.Ext4.XFS.JFS.ReiserFS 和 Btrfs 的全面性能测试,对比结果如下:     本次测试所 ...

  10. CMD递归文件夹

    SET dir=%~dp0 SET /a cnt=0 echo dir is: %dir% cd /d %dir% for /R %dir% %%i in (*.apk) do ( set /a cn ...