android中跨进程之间的异步回调

在android中,我们会经常跨进程通信,若要返回结果,则使用aidl中的bindServcie(),但是在结果返回过程中,是异步的过程,即需要一个回调的Listener,将结果回调到发起者。

假如A进程和B进程通信,A执行bindServcie()操作来绑定B,绑定之后,获取B本地代理Bproxy,A调用Bproxy来寻求B中的操作,并且要求B将结果返回过来,这时候,就需要A这边注册一次Listener,该Listener也是一个aidl,A携带该Listener给B,B经过一番操作之后,将结果通过Listener返回给A,这时候,对应A来说就是一个异步操作,即请求操作和结果返回是不同时候的。


对于请求操作和返回结果的跨进程异步操作,就需要A里面做一个后台线程操作。A在内部创建一个HanderThread,绑定一个内部Handler对象,在Listener结果返回时候,通过内部的Handler发送sendMessage()给HanderThread,让该线程执行处理操作。


这样就将异步操作结果反馈给内部后台的Thead执行,而不是在UI线程中执行。


这样的案例android很多,比如对数据监听的ContentObserver 中的onChange()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值