Android使用Messenger進行跨進程雙向通信

參考文章: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信使,然后就可以使用它對服務端進行發(fā)消息。

客戶端向服務端發(fā)送“你好!”

4、如果服務端在收到消息后想要回信,那么就如上圖所示,將客戶端的Messenger信使賦予Message中的參數replyTo。我們在服務端收到消息后的回調中可以獲取到它。

服務端收到消息,并獲取到客戶端的信使

5、如上述代碼,服務端獲取到客戶端的信使并用它回信,客戶端也會在信使持有的Handler引用中收到消息。

客戶端收到服務端回信
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,039評論 25 709
  • 【Android Service】 Service 簡介(★★★) 很多情況下,一些與用戶很少需要產生交互的應用程...
    Rtia閱讀 3,236評論 1 21
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情況下的生命周期:在用戶參與的情況下...
    AndroidMaster閱讀 3,280評論 0 8
  • 親愛的孩子: 轉瞬你就快12歲小學畢業(yè)了,時間流逝得真是太快了一些。在內心的某個部分,我們還固執(zhí)地停留在陪伴你的那...
    安吉莉娜創(chuàng)意對話閱讀 1,886評論 14 25
  • 打開自己所有交的作業(yè),數量并不多,只有12篇(自從加入007之后,自己每次都交了作業(yè)的)。再看看題目,呵呵...
    風痕3388閱讀 335評論 4 4

友情鏈接更多精彩內容