美文网首页
Android使用Messenger进行跨进程双向通信

Android使用Messenger进行跨进程双向通信

作者: 幻境召唤师 | 来源:发表于2018-08-27 16:32 被阅读0次

    参考文章:https://blog.csdn.net/zhaoshiqing7/article/details/8036663

    假设位于不同进程的某Activity要和某Service进行跨进程通信,步骤如下:

    1、在Service和Activity中各new一个Messeger对象。

    Service的信使 Client的信使

    2、在Activity中在某处方法中,调用bindService方法将Activity和Service进行绑定。

    注意此处的Connection对象

    3、Service在接到绑定通知时,在回调中获取Service信使的Binder对象,并通过mConnection连接返回给客户端,客户端获取到onServiceConnected回调方法中的IBinder对象service,并通过该参数实例化“还原”出来服务端的Service信使,然后就可以使用它对服务端进行发消息。

    客户端向服务端发送“你好!”

    4、如果服务端在收到消息后想要回信,那么就如上图所示,将客户端的Messenger信使赋予Message中的参数replyTo。我们在服务端收到消息后的回调中可以获取到它。

    服务端收到消息,并获取到客户端的信使

    5、如上述代码,服务端获取到客户端的信使并用它回信,客户端也会在信使持有的Handler引用中收到消息。

    客户端收到服务端回信

    相关文章

      网友评论

          本文标题:Android使用Messenger进行跨进程双向通信

          本文链接:https://www.haomeiwen.com/subject/utctwftx.html