进程间通信使用Messenger

通过Messenger来完成进程间的通信,简单来说就是将自己创建的Messenger交给对方,对方就能通过这个Messenger来与你通信。

客户端和服务端互传Messenger的方法并不相同,下面分别解释。

 客户端想发信息给服务端,就得先得到服务端的Messenger:


客户端请求与服务端连接:bindService();

        服务端通过onBind()返回自己创建的Messenger底层的Binder;

  客户端得到Binder后,用一个Handler来还原出服务端的Messenger,这样就得到了服务端的Messenger;

客户端将数据包装成一个Message对象,通过Messenger .send(Message)就能完成客户端向服务端的单方向的信息传输;


服务端想回应客户端,为什么用回应这个词呢,因为服务端想向客户端传输信息,必须是先有客户端向服务端发信息:


在上面的最后一步中,客户端自己也创建一个Messenger,然后将这个Messenger传给Message的replyTo字段(本身这个字段就是一个Messenger对象的引用)

        然后服务端在得到客户端传来的message的同时也能获得客户端的Messenger;

然后同样的方式,服务端以Messenger.send(Message)的方法就能向客户端发送信息,然后就完成了服务端向客户端传输信息的过程;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值