【android】AIDL传递自定义类型参数

76 篇文章 0 订阅
     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 plain copy
  1. public interface Callback extends Parcelable {  
  2.     /* 
  3.      * 返回信息 
  4.      */  
  5.     public void SetMessage(String res);  
  6.   
  7.       
  8.     public static final Parcelable.Creator<Callback> CREATOR = new Parcelable.Creator<Callback>() {  
  9.   
  10.         @Override  
  11.         public Callback[] newArray(int size) {  
  12.             return new Callback[size];  
  13.         }  
  14.   
  15.         @Override  
  16.         public Callback createFromParcel(Parcel source) {  
  17.             // TODO Auto-generated method stub  
  18.             return null;  
  19.         }  
  20.     };  
  21. }  


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

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

 void getMessage(String mum,inCallback obj);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值