参考文章:https://blog.csdn.net/zhaoshiqing7/article/details/8036663
假设位于不同进程的某Activity要和某Service进行跨进程通信,步骤如下:
1、在Service和Activity中各new一个Messeger对象。
2、在Activity中在某处方法中,调用bindService方法将Activity和Service进行绑定。
3、Service在接到绑定通知时,在回调中获取Service信使的Binder对象,并通过mConnection连接返回给客户端,客户端获取到onServiceConnected回调方法中的IBinder对象service,并通过该参数实例化“还原”出来服务端的Service信使,然后就可以使用它对服务端进行发消息。
4、如果服务端在收到消息后想要回信,那么就如上图所示,将客户端的Messenger信使赋予Message中的参数replyTo。我们在服务端收到消息后的回调中可以获取到它。
5、如上述代码,服务端获取到客户端的信使并用它回信,客户端也会在信使持有的Handler引用中收到消息。