等待绑定到AIDL完成

时间:2013-10-08 09:25:43

标签: android asynchronous intentservice aidl

我正在从 IntentService中调用AIDL服务。一旦完成对AIDL服务的绑定,IntentService必须将参数传递给AIDL服务以供执行。

现在由于异步绑定到AIDL,我希望IntentService中的代码在将参数传递给AIDL服务之前将其等待。

伪代码:

第1步:绑定到AIDL服务

第2步:将参数传递给AIDL服务

换句话说,甚至在STEP 1完成之前就已到达STEP2,对AIDL的coz绑定是异步的。然后我得到例外。

在STEP 2执行之前,如何等待STEP 1完成?

1 个答案:

答案 0 :(得分:0)

您可以使用ServiceConnection.onServiceConnected()来监控与服务的连接。一旦绑定完成,您将在onServiceConnected

中收到回调

以下是Android developers guide

中的文档摘要
  

客户端可以通过调用bindService()绑定到服务。当它   它必须提供ServiceConnection的实现   监视与服务的连接。 bindService()方法   立即返回没有值,但是当Android系统   它调用客户端和服务之间的连接   ServiceConnection上的onServiceConnected(),用于传递IBinder   客户端可以用来与服务进行通信。