在Android中传递数据一般为基本数据类型,int double float 等

有时候会传递对象,那么这个对象和其内部类就要实现Serializable这个接口或者Parcelable这个接口

Serializable:(不推荐)

这个比较简单 一般直接写上implements Serializable即可,复杂点需要加上ID。long类型。

因为这个接口只是一个空接口,并没有需要实现的方法

 

从图1可以看出这个java.io.Serializable是基于IO包下的,那么可想而知IO一般都是耗时操作,读写数据等,

所以java.io.Serializable 会将对象写入到IO进行序列化,从而进行数据传递,但是这是比较耗时的,不推荐这种写法

 

第二种是Parcelable(推荐)

 

 

然后复写其

writeToParcel
describeContents
Creator

 

主要方法,然后写一个构造类,(如果使用FastJSon去解析数据记得添加一个无参的构造方法,否则会解析对象失败

 

之前用Eclipse和开始用AS开发这几个方法都是手写,费事,AS可以自动生成相对应的方法

但是Object类型不给生成其对应的writeToParcel和构造方法的读取,因为它不能判断是写入int 或者String 或者是0/1

这也算比较坑,所以使用Intent Bundle 传递

Parcelable数据的时候,一定得看好是否生成了所需要的字段,没有的话可以手动更改类型,与后台开发人员进行协定格式

 

 

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. Android下的Service的基本用法
  5. Android版本兼容器
  6. 游走Android系列之Service
  7. Android客户端消息推送原理简介
  8. Android第三方应用集成到Android系统的解决方法
  9. android AIDL RPC 机制

随机推荐

  1. MySQL数据库监控软件lepus使用问题以及解
  2. 详解关于MySQL 8.0走过的坑
  3. linux系统ubuntu18.04安装mysql 5.7
  4. MySQL高效模糊搜索之内置函数locate inst
  5. mybatis mysql delete in操作只能删除第
  6. MySql中特殊运算符的使用方法总结
  7. 深入浅析MySQL 中 Identifier Case Sensi
  8. Linux下mysql 5.7 部署及远程访问配置
  9. mysql 5.7.18 Installer安装下载图文教程
  10. mysql 5.7.18 MSI安装图文教程