service
- 定义一个Handle处理从client传递过来的message
- 通过Handle可以new一个service的messenger,serverMessenger = new Messenger(serverHandler);
- service需要重写public IBinder onBind(Intent intent),通过serverMessenger.getBinder(),返回IBinder
client
- 绑定service,绑定时需要new一个ServiceConnection传入,并在onServiceConnected中获取service的messenger(通过IBinder创建);
- 定义一个Handle处理从service传递过来的message;
- 通过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。