Aidl默认支持的类型包话java基本类型(int、long、boolean等)和(String、List、Map、CharSequence),如果要传递自定义类型,首先要让自定义类型支持parcelable协议,实现步骤如下:
1>自定义类型必须实现Parcelable接口,并且实现Parcelable接口的public void writeToParcel(Parcel dest, int flags)方法 。

2>自定义类型中必须含有一个名称为CREATOR的静态成员,该成员对象要求实现Parcelable.Creator接口及其方法。

3> 创建一个aidl文件声明你的自定义类型。

Parcelable接口的作用:实现了Parcelable接口的实例可以将自身的状态信息(状态信息通常指的是各成员变量的值)写入Parcel,也可以从Parcel中恢复其状态。 Parcel用来完成数据的序列化传递。

首先,自定义一个类

[java] view plaincopy
  1. public interface Callback extends Parcelable {
  2. /*
  3. * 返回信息
  4. */
  5. public void SetMessage(String res);
  6. public static final Parcelable.Creator<Callback> CREATOR = new Parcelable.Creator<Callback>() {
  7. @Override
  8. public Callback[] newArray(int size) {
  9. return new Callback[size];
  10. }
  11. @Override
  12. public Callback createFromParcel(Parcel source) {
  13. // TODO Auto-generated method stub
  14. return null;
  15. }
  16. };
  17. }

其次,在自定义类型所在包下创建一个aidl文件对自定义类型进行声明,文件的名称与自定义类型同名。 
package com.***; 
parcelable Callback;

再次,在要接口的aidl中注明

void getMessage(String mum,inCallback obj);

【android】AIDL传递自定义类型参数相关推荐

  1. Android AIDL 传递对象(Parceable),深度解读Netty

    import xj.musicserver.MusicInfo; interface IPlayListener { /** Demonstrates some basic types that yo ...

  2. Android java传递int类型数组给C

    接着前面的文章<Android java传递int类型数据给C><Android java传递string类型数据给C>,继续实践 实现public native int[] ...

  3. Android AIDL使用介绍(2)自定义数据类型的传递

    1.背景 默认情况下,AIDL只支持下列数据类型: Java八种基础数据类型(如 int.long.char.boolean 等); String字符串: CharSequence字符序列: List ...

  4. 【Android】使用AIDL传递用户自定义类型数据--附完整示例代码

    AIDL对Java类型的支持 AIDL支持Java原始数据类型 AIDL支持String和CharSequence AIDL支持传递其他AIDL接口,但你引用的每个AIDL接口都需要一个import语 ...

  5. Android绑定多个aidl,android aidl 多`module`版的实现

    多module版,pojo类型数据的双向传递 [service client] android中如何进行跨进程通信的? aidl是什么? android中如何通过aidl实现跨进程通信? 最简单的ai ...

  6. android--service之aidl传递复杂对象,Android--Service之AIDL传递复杂对象

    前言 Android的AIDL不仅可以在绑定服务中传递一些Android规定的数据类型的数据,还可以传递一些复杂类型的数据.但是与传递系统允许的数据类型相比,复杂类型数据的传递要做更多的工作,本篇博客 ...

  7. Android AIDL使用介绍(3) 浅说AIDL背后的Binder

    1.背景 在前面的博客中,我们已经学会了使用AIDL进行跨进程通信,AIDL的使用比较简单,可实际上跨进程通信是一个相当复杂的过程,例如进程A是怎么找到进程B的,如果有一个进程C冒充进程A,进程B又该 ...

  8. ANDROID AIDL 1

    也可参考:http://buaadallas.blog.51cto.com/399160/372090 的Android AIDL(Android Interface Definition Langu ...

  9. android aidl权限,android AIDL

    进程通讯AIDL,即Android Interface Definition Language(安卓接口定义语言),主要是用来跨进程访问,例如服务器端与客户端通信时,服务端与客户端如何收发数据需要通过 ...

最新文章

  1. Java编程详细解析—淘宝大秒杀系统是如何设计的?
  2. php用什么做缓存文件格式,怎么用php语言来做文件缓存
  3. 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
  4. SQL工作笔记-达梦7存储过程中游标的使用(for循环 IF等)
  5. ios公司开发者账号申请分享攻略
  6. html背景图平移显示一次,js实现单张图片平移切换效果
  7. Java爬虫实战(一):抓取一个网站上的全部链接
  8. linux文件IO的操作
  9. IIS7.5应用程序池集成模式和经典模式的区别介绍
  10. 解决华硕笔记本自带触摸板的二指及三指失效的问题
  11. python中pandas库的作用_python之pandas库详解
  12. Linux服务器中登录oracle数据库
  13. openssl生成自签名证书流程
  14. html中如何把两行合并单元格,怎么把表格上下两行合并单元格合并
  15. clickhouse-backup数据备份
  16. Java操作sqlite3数据库心得(一)
  17. 活久见 kernel:NMI watchdog: BUG: soft lockup - CPU#8 stuck for 28s! [xsoftdd/12:0]
  18. google离线地图实例,加载本地地图瓦片, 支持点线面及图文标注,坐标定位,卫星、电子地图切换
  19. centos7搭建owncloud私有云
  20. 给osg配置bullet物理引擎

热门文章

  1. Python自然语言处理学习笔记(45):5.6 基于转换的标记
  2. SilverLight学习笔记--Silverlight中操作DOM元素
  3. yue-library是一个基于SpringBoot封装的基础库
  4. python中不被定义_一日一技:在Python中双下划线私有方法不能被调用的原理
  5. 记事本如何运行python代码_利用Python开发实现简单的记事本
  6. html() 无效,Internet Explorer无效HTML解析代码漏洞
  7. php 12小时,使用php怎么将12小时制转换为24小时制
  8. 注入学习(3) Mysql+php注入 基于bool和时间的盲注
  9. MVC 使用 Ueditor富文本编辑器
  10. Linux系统下配置JDK环境变量