Android Messenger使用

在android IPC中有介紹到一個(gè)可以跨進(jìn)程的通信方法Messenger,翻譯為信使苇倡,這很貼切它就是扮演這個(gè)角色用的舀瓢,可以在不同的進(jìn)程間傳遞信息滞乙,也就是Message對(duì)象债蓝。在Message對(duì)象中可以放入我們需要傳遞的數(shù)據(jù)壳鹤,Messenger是一種輕量級(jí)的IPC方案,它的底層實(shí)現(xiàn)的是AIDL饰迹,我們可以通過(guò)該類的構(gòu)造方法就明白了芳誓,不清楚AIDL的同學(xué)可以自行去翻看這類的資料。Messenger通常用在服務(wù)端進(jìn)程和客戶端進(jìn)程通信中啊鸭,這里服務(wù)端是android中常見(jiàn)的Service而客戶端可以理解為Activity锹淌。
Messenger的使用很簡(jiǎn)單,由于它一次處理一個(gè)請(qǐng)求赠制,因此在服務(wù)端我們不需要考慮線程同步問(wèn)題赂摆,這也是因?yàn)榉?wù)端不存在并發(fā)執(zhí)行的情形。使用Messenger有如下幾個(gè)步驟分為服務(wù)端和客戶端:

  • 服務(wù)端
    先看服務(wù)端:



上圖中是一個(gè)普通的Service钟些,在其中我們使用Messenger來(lái)接受并恢復(fù)客戶端發(fā)來(lái)的信息烟号。客戶端需要使用bindService方法 來(lái)綁定服務(wù)政恍。因此在service的onBind方法中需要返回一個(gè)IBinder對(duì)象汪拥,此對(duì)象從Messenger中獲取。在此我們可以看出Messenger就相當(dāng)于做橋梁一樣負(fù)責(zé)傳輸信息篙耗。

  • 客戶端

客戶端很簡(jiǎn)單喷楣,就和普通使用bindService一樣,在onServiceConnection的時(shí)候向服務(wù)器發(fā)送一條信息鹤树,并且由于這里設(shè)置了服務(wù)端會(huì)恢復(fù)給客戶端因此铣焊,在message.replyTo=replay;方法 將傳過(guò)去的信息告訴服務(wù)端用什么來(lái)回復(fù)我。replay對(duì)象 是存在于客戶端的Messenger對(duì)象罕伯,在該對(duì)象的Handler中我們就可以獲取服務(wù)端傳回來(lái)的信息曲伊。

到這里可能會(huì)說(shuō),并沒(méi)有實(shí)現(xiàn)跨進(jìn)程啊追他,我想說(shuō)的是這里我們的Service使用的是在清單文件中指定的process屬性坟募。當(dāng)啟動(dòng)它的時(shí)候 我們可以看到后臺(tái)有兩個(gè)進(jìn)程的存在。當(dāng)然啦 它也能用在同進(jìn)程的應(yīng)用中邑狸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末懈糯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子单雾,更是在濱河造成了極大的恐慌赚哗,老刑警劉巖她紫,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異屿储,居然都是意外死亡贿讹,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門够掠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)民褂,“玉大人,你說(shuō)我怎么就攤上這事疯潭∩蘅埃” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵竖哩,是天一觀的道長(zhǎng)哭廉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)期丰,這世上最難降的妖魔是什么群叶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任吃挑,我火速辦了婚禮钝荡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舶衬。我一直安慰自己埠通,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布逛犹。 她就那樣靜靜地躺著端辱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虽画。 梳的紋絲不亂的頭發(fā)上舞蔽,一...
    開(kāi)封第一講書(shū)人閱讀 52,337評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音码撰,去河邊找鬼渗柿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛脖岛,可吹牛的內(nèi)容都是我干的朵栖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼柴梆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼陨溅!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起绍在,我...
    開(kāi)封第一講書(shū)人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤门扇,失蹤者是張志新(化名)和其女友劉穎雹有,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體悯嗓,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡件舵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脯厨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铅祸。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖合武,靈堂內(nèi)的尸體忽然破棺而出临梗,到底是詐尸還是另有隱情,我是刑警寧澤稼跳,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布盟庞,位于F島的核電站,受9級(jí)特大地震影響汤善,放射性物質(zhì)發(fā)生泄漏什猖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一红淡、第九天 我趴在偏房一處隱蔽的房頂上張望不狮。 院中可真熱鬧,春花似錦在旱、人聲如沸摇零。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驻仅。三九已至,卻和暖如春登渣,著一層夾襖步出監(jiān)牢的瞬間噪服,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工胜茧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粘优,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓竹揍,卻偏偏與公主長(zhǎng)得像敬飒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芬位,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Jianwei's blog 首頁(yè) 分類 關(guān)于 歸檔 標(biāo)簽 巧用Android多進(jìn)程无拗,微信,微博等主流App都在用...
    justCode_閱讀 5,925評(píng)論 1 23
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,302評(píng)論 25 707
  • Android跨進(jìn)程通信IPC整體內(nèi)容如下 1昧碉、Android跨進(jìn)程通信IPC之1——Linux基礎(chǔ)2英染、Andro...
    隔壁老李頭閱讀 3,616評(píng)論 3 12
  • 綁定服務(wù): 綁定服務(wù)是客戶端-服務(wù)器接口中的服務(wù)器揽惹。綁定服務(wù)可讓組件(例如 Activity)綁定到服務(wù)、發(fā)送請(qǐng)求...
    pifoo閱讀 1,231評(píng)論 0 4
  • 今天加班四康,把老大昨天的博物館方案變成rhino模型搪搏,本來(lái)是不難的工作,但是就是塌不下心來(lái)去做闪金。 嗯疯溺,說(shuō)是不難,其實(shí)...
    ccshark閱讀 164評(píng)論 0 0