我面临以下问题。
我的应用程序需要在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
上吗?或者有类似的方法来实现我正在寻找的东西?或者我错过了什么?
答案 0 :(得分:2)
对我来说解决方案似乎非常明显 - 只需编写自己的类扩展Binder
。您可以向CustomBinder
课程添加任何自定义字段或方法。只需实例化CustomBinder
并将其以onBind()
方法返回即可。