【移动开发】AIDL中callback的实现

本文详细介绍了如何使用AIDL实现在Android服务端调用客户端的方法,重点讲解了RemoteCallbackList的使用,包括服务端的注册、解注册回调函数,以及客户端的回调函数实现,实现了进程间通信的双向交互。
摘要由CSDN通过智能技术生成

 AIDL实现就可以在客户端中调用服务端的方法,并传递数据到服务端,也可以服务端传递数据过来;但是如果要从服务端去调用客户端的方法,那么就需要注册callback!

 

抄自和源码:http://zxl-ong.iteye.com/blog/736888

 

前面的文件讲到用AIDL来实现进程间的通信,但是只讲到客户端调用服务端的方法,现在来看看服务端对客户端方法的调用callback!

服务端对客户端的调用主要用到了RemoteCallbackList这个类;

一、服务端

首先必须写客户端对服务端调用的一个AIDL文件:

[html] view plain copy
  1. package net.blogjava.mobile.complex.type.aidl;  
  2. import net.blogjava.mobile.complex.type.aidl.Product;  
  3. import net.blogjava.mobile.complex.type.aidl.ITaskCallback;  
  4. interface IMyService    
  5. {    
  6.     //客户端对服务端调用的方法                                                                                                         Map getMap(in String country, in Product product);  
  7.     Product getProduct();       
  8.     void getProduc(out Product product);  
  9.       
  10.     //用来注册回调的对象  
  11.      void registerCallback(ITaskCallback cb);     
  12.     void unregisterCallback(ITaskCallback cb);  
  13. }      


这个文件会生成一个.java文件;

 

然后再新建一个类并extend service,用于AIDL的服务;在服务中重写onbind()函数并实现AIDL中的方法:

[html] view plain
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值