Android 绑定服务:Inter 与 Intra - 使用 Messenger 的应用程序通信
Android Bound services: Inter vs Intra - app communication using Messenger
我有 2 Android 个应用程序 - App1 和 App2。我有一个绑定服务 - ServiceA 在 App1 中。 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 基于 Messenger
的 Binder
或您当前的实现,具体取决于哪个客户端调用了 onBind()
。
让我知道进展如何!
我有 2 Android 个应用程序 - App1 和 App2。我有一个绑定服务 - ServiceA 在 App1 中。 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 基于 Messenger
的 Binder
或您当前的实现,具体取决于哪个客户端调用了 onBind()
。
让我知道进展如何!