麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > Android > 正文

android使用Messenger綁定Service的多種實現(xiàn)方法

2020-04-11 12:21:53
字體:
供稿:網(wǎng)友

如果你需要在不同進程間通信,你可以在Service中使用Messenger來實現(xiàn)進程中通信。

如果使用這種方式,Service中需要定義一個Handler對象(負責(zé)對客戶端發(fā)送過來的Message進行響應(yīng))。

Messenger可以共享給client一個IBinder對象,client通過這個IBinder對象向Service發(fā)送Message,而前面提到的Handler對象是這一切的基礎(chǔ)。

注:使用這種方式進行通信是不支持多線程的。

那就讓我們來看看使用這種方式進行通信吧!

注:Service在聲明時必須對外開放,即android:exported="true",且本文是通過Intent啟動的Service,所以在聲明時該Service可以接收特定的Action。

1、在Service中創(chuàng)建一個Handler對象,來處理從client發(fā)過來的Message

2、根據(jù)創(chuàng)建的Handler對象創(chuàng)建一個Messenger對象

3、使用Messenger的getBinder方法得到一個IBinder對象,并在Service的onBind方法中將其反出去

4、client在onServiceConnected中根據(jù)IBinder參數(shù)創(chuàng)建一個Messenger對象(可參考Messenger的構(gòu)造函數(shù))

5、client可以使用上一步得到的Messenger對象來給Service發(fā)送Message了

經(jīng)過上面的五部我們就能讓client與Service進行通信。client使用Messenger對象給Service發(fā)送Message后,Service中的Handler將會對消息作出響應(yīng)。

上面實現(xiàn)的僅僅是單向通信,即client給Service發(fā)送消息,如果我需要Service給client發(fā)送消息又該怎樣做呢?

其實,這也是很容易實現(xiàn)的,下面就讓我們接著上面的步驟來實現(xiàn)雙向通信吧~

6、在client中創(chuàng)建一個Handler對象,用于處理Service發(fā)過來的消息

7、根據(jù)client中的Handler對象創(chuàng)建一個client自己的Messenger對象

8、我們在第5步的時候獲得了Service的Messenger對象,并通過它來給Service發(fā)送消息。這時候,我們將client的Messenger對象賦給待發(fā)送的Message對象的replyTo字段

9、在Service的Handler處理Message時將client的Messenger解析出來,并使用client的Messenger對象給client發(fā)送消息

這樣我們就實現(xiàn)了client和Service的雙向通信。client和Service都有自己的Handler和Messenger對象,使得對方可以給自己發(fā)送消息,值得注意的是client的Messenger是通過Message的replyTo傳遞給Service的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五月婷婷第四色 | 婷婷久久网 | 天天色图片 | 99re热视频这里只精品 | 国产精品久久久久永久免费 | 草莓福利社区在线 | 精品一区久久久 | 久久精品一区视频 | 91成 | 色播av在线| 亚洲成人精品久久 | 国产精品久久久久久婷婷天堂 | 亚洲午夜精选 | 久久资源总站 | 精品一区二区视频在线观看 | 成人毛片视频在线观看 | 91成人在线免费视频 | 久久久电影电视剧免费看 | 色婷婷tv | 99re66热这里只有精品8 | 久久久久免费精品 | 黄色香蕉视频 | 毛片a级毛片免费播放100 | www.91pron| 91性高湖久久久久久久久网站 | 中文在线观看免费视频 | 久久吊 | 国产精品www| 欧美一级精品片在线看 | 一区二区三区欧美精品 | 精品国产一区二区三 | 国产午夜免费福利 | 国产1区在线观看 | 欧美巨根 | 久久电影一区二区 | 56av国产精品久久久久久久 | 精品在线观看一区二区三区 | 最新91在线视频 | 免费毛片a线观看 | 久久91精品国产91久久yfo | 在线免费观看精品 |