Android中的AIDL

来源:互联网 发布:中级经济师网络课程 编辑:程序博客网 时间:2024/05/22 15:21

最近项目中有用到Binder,学习之后写点心得,不好的地方还请大家指正。

Android中跨进程通信有多种方式,比如BroadcastReceiver,message,当然还有AIDL。其中BroadcastReceiver的特点是占用系统内存,message同时通信进程少,是请求队列,如果项目中要进行多进程之间的通信,这时,AIDL就派上用场了。好了,话不多说,直接上代码吧。


1.创建AIDL文件

  鼠标放在main文件夹上,右击 --> new --> AIDL --> AIDL File

  

 2.在main文件夹下会生成aidl文件,生成自己的.aidl文件,这里,可以编写自己要实现的方法

   注意:(1),如果有多个.aidl文件,切记要导入所依赖的包名(这里坑了我好几天)

               (2),可能是你的复制进来的Aidl文件的包名没有修改成当前的包名

3.make一下工程,会在如图路径下生成对应的 .Java文件。

                                             

 4.创建服务端

    继承自service,实现未实现的方法,实现onBind方法。

   

 5.创建客户端,

        (1),调用ServiceConnection,在onServiceConnected方法中,调用.stub方法

    

    (2), 尝试与服务端连接,在按钮的监听事件中,调用服务端重写的方法即可,

          

总结下个人在项目中遇到的坑:1,生成Java文件时导包错误

0 0