使用信使和绑定器进行进程间通信

时间:2012-10-02 13:39:36

标签: android android-activity android-service messenger

我面临以下问题。

我的应用程序需要在2个服务之间进行通信,1个用于网络,1个用于粗略的电话服务。

现在,我做了以下工作来实现IPC:

我正常扩展BinderClass,并在Binder方法中返回自己的onBind()。这很好用。但是现在除了可以在我的Service和我的Activity之间发送消息之外我还想要。但这就是问题所在。由于我在Binder方法中返回我自己的onBind(),如下所示:

@Override
public IBinder onBind(Intent intent){
    Log.d(this.getClass().getName(), "BIND");
    return binderToThisProcess;
}

我不能像这样返回一个额外的Messenger:

...
return outMessenger.getBinder();

我的意思当然这很明显,因为return语句只允许返回一个Object。

我的问题是:我有什么方法可以将Messenger附加到我自己的Binder上吗?或者有类似的方法来实现我正在寻找的东西?或者我错过了什么?

1 个答案:

答案 0 :(得分:2)

对我来说解决方案似乎非常明显 - 只需编写自己的类扩展Binder。您可以向CustomBinder课程添加任何自定义字段或方法。只需实例化CustomBinder并将其以onBind()方法返回即可。