Messenger(轻量级AIDL替代方案)能用于跨应用程序通信吗?

6
一个快速的问题:Android文档非常清楚地说明MessengerAIDL的一种替代方式,用于进程间通信(IPC)。但他们从未明确说明这是否适用于运行在不同应用程序中的进程,还是仅适用于一个应用程序内部的进程。我强烈怀疑前者,但想要确认一下。
谢谢! Jan
2个回答

7

AIDL主要用于应用间进程通信。虽然可以使用AIDL进行内部通信,但这并没有什么好处,并且会对您的Binder实现产生限制。

此外,在绝大多数情况下,一个应用程序不会有多个进程。大多数应用程序没有多个进程的必要。

MessengercreatePendingResult()ResultReceiver、私有广播Intents——所有这些都是服务与客户端跨进程通信的方式。


太好了!我猜这意味着Messenger可以进行跨应用程序通信。非常感谢! - Jan Żankowski

0

Messenger 内部使用 AIDL,它可以在多个应用程序中使用。根据 Android 文档,Messenger 服务可用于两个进程之间的通信,但不限于相同的应用程序。进程可以位于同一应用程序或不同应用程序。

如果我们希望请求按顺序处理,那么应该使用 Messenger,因为它将消息输入处理程序队列中,并逐个处理它们,而在 AIDL 中,所有请求将立即处理,并且开发人员需要负责维护线程安全性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接