我面临以下问题。
我的应用程序需要在两个服务之间进行通信,一个用于网络,一个用于基本的电话服务。
现在,我做了以下工作来实现IPC:
我将BinderClass
扩展为正常值,并在Binder
方法中返回自己的onBind()
。那就行了。但现在我想除此之外,还可以在我的Service
和Activity
之间发送消息。但问题就在这里。因为我在Binder
方法中返回了自己的onBind()
,如下所示:
@Override
public IBinder onBind(Intent intent){
Log.d(this.getClass().getName(), "BIND");
return binderToThisProcess;
}
我不能再返回像这样的附加信使:
...
return outMessenger.getBinder();
当然,这很明显,因为return语句只允许返回一个对象。
我的问题是:有什么方法可以将
Messenger
附加到我自己的Binder
上吗?或者有类似的方法来实现我想要的吗?还是我错过了什么? 最佳答案
对我来说,解决方案似乎非常明显——只要编写自己的类来扩展Binder
。您可以将任何自定义字段或方法添加到CustomBinder
类中。只需实例化CustomBinder
并在onBind()
方法中返回它。
关于android - 使用Messenger和Binders进行进程间通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12691408/