【发布时间】:2016-06-13 19:13:07
【问题描述】:
情况:
我有一个带有Service 的 Android 系统应用程序(持久),它应该一直运行。 (我们称之为服务 A)
然后有另一个应用程序(不是系统应用程序;普通应用程序)也有一个Service。但是这个Service 可能会运行,也可能不会运行,因为如果需要资源,Android 操作系统会杀死它。 (我们称之为服务 B)
简而言之:我们有两个应用程序(因此有 2 个 APK)可以使用相同的证书进行签名。 (所以他们可以在同一个进程中运行吗?)
我试图完成的事情
服务 A 监听事件。当它接收到一个事件时,我希望服务 A 调用正常的应用程序(服务 B),该应用程序应该将响应返回给服务 A。
让两个Service通信的方法
我可以让他们使用以下方式进行交流:
- 绑定(使用 AIDL)
- 消息(但不是最佳的,因为必须传递复杂的对象)
问题
- 哪种沟通方式最适合所描述的案例?
- 当服务 A 想要委托/发送消息给服务 B 并且服务 B 没有运行时会发生什么?它必须得到服务 B 的响应。如果服务 B 没有运行,而服务 A 想要调用它,我是否应该始终启动它?
谢谢!
【问题讨论】:
-
如果你想快速传递复杂的数据,请看this
标签: android service ipc messaging aidl