进程通信(IPC)之Messenger

进程通信(IPC)之Messenger

馋奶兔 提交于 2019-12-07 16:18:15
bound服务是客户端-服务器模式的服务。 bound服务的创建方式之一: 创建一个支持绑定的服务时,你必须提供一个 IBinder ,用作客户端和服务间进行通信的编程接口 使用Messenger定义该接口: 如果你需要接口跨越多个进程进行工作,可以通过 Messenger 来为服务创建接口。在这种方式下,服务定义一个响应各类消息对象 Message 的 Handler 。此 Handler 是 Messenger 与客户端共享同一个 IBinder 的基础,它使得客户端可以用消息对象 Message 向服务发送指令。此外,客户端还可以定义自己的 Message ,以便服务能够往回发送消息。 简单的说,就是服务和客户端都要有自己的Messenger,然后通过handler处理各自Messenger发送的message消息。(客户端和服务相互响应的原理)。 public class MessageService extends Service{ //本例的Service在声明时必须对外开放,即android:exported="true"。 //Messenger通信是不支持多线程的,要用到多线程就该换成AIDL通信 public static final int WHAT_1=1; Messenger client_messenger; @Override public void