Messenger 是基于消息(Message)的进程间通信方式。使用Messenger为服务创建接口,服务可以这种方式定义对应于不同类型Message对象的Handler,此Handler是Messenger的基础,Messenger随后可与客户端分享一个IBinder,从而让客户端能利用Message对象向服务发送命令。客户端还可以自定义Messenger来实现双向通信。
客户端
1 |
|
服务端
1 |
|
服务端被注释掉的这些代码如果在使用时会发生clientMessage.replyTo中的replyTo对象为Null的情况,但是如果在Handler中直接获取replyTo对象就没问题。
猜测Message的成员对象replyTo在离开Handler时如果没有被引用生命周期结束,有空再研究。
1 | //private Message clientMessage |
参考文献
Android进程间通信之Messenger
Android 进阶10:进程通信之 Messenger 使用与解析