如何从单个服务为多个AIDL接口提供服务?设想如下:
|---Client_1
|--AIDL1--| ...
| |---Client_6
MyService |
| |---Client_4
|--AIDL2--| ...
|---Client_9我的想法是使用public IBinder onBind(Intent intent)方法的意图,以某种方式找出客户机应用程序调用的类型以及该客户机感兴趣的AIDL。这个是可能的吗?
发布于 2014-11-30 17:06:37
我也有同样的问题,并编写了原型进行测试。实际上,它应该通过检查意图和返回不同的粘合剂根据意图附加的工作。
但是经过测试,我发现onBind只对第一个客户端调用一次。之后,系统将将缓存的绑定器返回给希望绑定服务的以后的客户端。
Android 正式文件描述
多个客户端可以同时连接到服务。但是,只有在第一个客户端绑定时,系统才调用服务的onBind()方法来检索IBinder。然后,系统向绑定的任何其他客户端传递相同的IBinder,而无需再次调用onBind()。
我仍在努力寻找方法,但似乎不可能做到这一点。
https://stackoverflow.com/questions/27065431
复制相似问题