Android Messenger

service

  1. 定义一个Handle处理从client传递过来的message
  2. 通过Handle可以new一个service的messenger,serverMessenger = new Messenger(serverHandler);
  3. service需要重写public IBinder onBind(Intent intent),通过serverMessenger.getBinder(),返回IBinder

client

  1. 绑定service,绑定时需要new一个ServiceConnection传入,并在onServiceConnected中获取service的messenger(通过IBinder创建);
  2. 定义一个Handle处理从service传递过来的message;
  3. 通过handle可以new一个client的messenger,并将该messenger通过messenger传递,messageToServer.replyTo = clientMessenger;

通信流程

client绑定service,在onServiceConnected通过IBinder创建service的messenger,创建message,并将自己的messenger通过replyto当道message上send。service获取message后也活得了client的messenger,service通过handle处理message,可以通过client的messenger发送消息给client。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容