您的位置:首页 > 移动开发 > Android开发

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

2017-01-05 17:03 615 查看
        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

public interface Callback extends Parcelable {  

    /* 

     * 返回信息 

     */  

    public void SetMessage(String res);  

  

      

    public static final Parcelable.Creator<Callback> CREATOR = new Parcelable.Creator<Callback>() {  

  

        @Override  

        public Callback[] newArray(int size) {  

            return new Callback[size];  

        }  

  

        @Override  

        public Callback createFromParcel(Parcel source) {  

            // TODO Auto-generated method stub  

            return null;  

        }  

    };  

}  

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

package com.***; 

parcelable Callback; 

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

 void getMessage(String mum,inCallback obj);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: