首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android中具有多个AIDL接口的单一服务

Android中具有多个AIDL接口的单一服务
EN

Stack Overflow用户
提问于 2014-11-21 16:00:07
回答 1查看 3.3K关注 0票数 5

如何从单个服务为多个AIDL接口提供服务?设想如下:

代码语言:javascript
复制
                    |---Client_1
          |--AIDL1--|     ...
          |         |---Client_6
MyService |
          |         |---Client_4
          |--AIDL2--|     ...
                    |---Client_9
  • 具有多个AIDL的单一业务;
  • 每个客户可以访问任意数量的AIDL接口;
  • 为了更好地理解上面的关系图,有些客户端(例如Client_1、Client_8)只使用一个接口,而其他客户机(例如Client_4、Client_5、Client_6)则同时访问AIDL1和AIDL2。

我的想法是使用public IBinder onBind(Intent intent)方法的意图,以某种方式找出客户机应用程序调用的类型以及该客户机感兴趣的AIDL。这个是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-30 17:06:37

我也有同样的问题,并编写了原型进行测试。实际上,它应该通过检查意图和返回不同的粘合剂根据意图附加的工作。

但是经过测试,我发现onBind只对第一个客户端调用一次。之后,系统将将缓存的绑定器返回给希望绑定服务的以后的客户端。

Android 正式文件描述

多个客户端可以同时连接到服务。但是,只有在第一个客户端绑定时,系统才调用服务的onBind()方法来检索IBinder。然后,系统向绑定的任何其他客户端传递相同的IBinder,而无需再次调用onBind()。

我仍在努力寻找方法,但似乎不可能做到这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27065431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档