Android 绑定服务:Inter 与 Intra - 使用 Messenger 的应用程序通信

Android Bound services: Inter vs Intra - app communication using Messenger

我有 2 Android 个应用程序 - App1App2。我有一个绑定服务 - ServiceAApp1 中。 App1 中的多个服务和活动绑定到 ServiceA 并调用其上的方法。现在,我想将数据从 ServiceA 发送到存在于 App2 中的远程服务。我将使用 Messenger API 从 ServiceA 公开 binder 对象以进行进程间通信。

据我了解,App1 中依赖于 ServiceA 的所有活动和服务现在也需要使用 Messenger API 访问活页夹。这是正确的吗?

如果是,是否有办法仅对 ServiceA 进行更改,以便它可以与远程服务交换数据而无需更改其现有客户端?

P.S:该服务不需要处理多个并发请求,这是我决定使用 Messenger API.[=14= 的主要原因之一]

您应该能够提供基于 Messenger 的界面和直接界面。我自己没有测试过,但你可以试试这个:

onBind() 中,您收到一个 Intent。这是客户端调用bindService()时使用的Intent。您可以在 Intent 中使用 2 个不同的 ACTION(或使用“额外的”),以便您可以区分来自 App1 的客户端和 App2 的客户端的调用。然后 return 基于 MessengerBinder 或您当前的实现,具体取决于哪个客户端调用了 onBind()

让我知道进展如何!