日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中Messenger的使用

發布時間:2024/4/14 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中Messenger的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

我們使用Handler都是在一個進程中使用的,如何跨進程使用Handler?

其實這個問題不難解決,自己動手對binder進行一些封裝就可以簡單實現。但是當你看系統源碼,就會發現,其實這些android都已經為我們做好了。

使用android系統的android.os.Messenger可以很方便的跨進程使用Handler。下面是示例程序。

?

首先是服務端。

public?class?MessengerTestService?extends?Service?{protected?static?final?String?TAG?=?"MessengerTestService";private?Handler?mHandler?=?new?Handler()?{@Overridepublic?void?handleMessage(Message?msg)?{switch?(msg.what)?{case?1:Log.d(TAG,?"收到消息");//獲取客戶端message中的Messenger,用于回調final?Messenger?callback?=?msg.replyTo;try?{//?回調callback.send(Message.obtain(null,?0));}?catch?(RemoteException?e)?{//?TODO?Auto-generated?catch?blocke.printStackTrace();}break;}}};@Overridepublic?IBinder?onBind(Intent?intent)?{return?new?Messenger(mHandler).getBinder();}}

?

?

然后是客戶端

public?class?MainActivity?extends?Activity?{protected?static?final?String?TAG?=?"MainActivity";Messenger?messenger;Messenger?reply;@Overrideprotected?void?onCreate(Bundle?savedInstanceState)?{super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);reply?=?new?Messenger(handler);Intent?intent?=?new?Intent();intent.setClassName("test.messenger",?"test.messenger.MessengerTestService");//?綁定服務bindService(intent,?new?ServiceConnection()?{@Overridepublic?void?onServiceDisconnected(ComponentName?name)?{}@Overridepublic?void?onServiceConnected(ComponentName?name,?IBinder?service)?{Toast.makeText(MainActivity.this,?"bind?success",?0).show();messenger?=?new?Messenger(service);}},?Context.BIND_AUTO_CREATE);}public?void?sendMessage(View?v)?{Message?msg?=?Message.obtain(null,?1);//?設置回調用的Messengermsg.replyTo?=?reply;try?{messenger.send(msg);}?catch?(RemoteException?e)?{e.printStackTrace();}}private?Handler?handler?=?new?Handler()?{@Overridepublic?void?handleMessage(Message?msg)?{Log.d(TAG,?"回調成功");}}; }

?


客戶端綁定服務端,獲取遠程Messenger的binder對象。調用Messenger的send函數,就可以吧Message發送至服務端的Handler。

同時,如果需要服務端回調客戶端(往客戶端的Handler發消息),則可以在send的Message中設置replyTo,服務端就可以往客戶端發送消息了。

下面我們看下Messenger的源碼,還是很簡單的。

構造函數

????public?Messenger(Handler?target)?{mTarget?=?target.getIMessenger();??}

Handler.getIMessenger()返回的是一個IMessenger的binder對象,它的send方法將會調用Handler的sendMessage方法。

????public?void?send(Message?message)?throws?RemoteException?{mTarget.send(message);}

?

?

?

?

轉載于:https://my.oschina.net/u/1177694/blog/687772

總結

以上是生活随笔為你收集整理的Android中Messenger的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本三级中文字幕 | 椎名由奈在线观看 | 免费观看视频在线观看 | 国产精品无码电影在线观看 | 大又大粗又爽又黄少妇毛片 | 免费精品| 欧日韩在线 | 亚洲一区二区三区电影 | 7色av| 久久爱影视 | 国产日韩精品视频 | 草久久久久久 | 校园伸入裙底揉捏1v1h | 一级看片| 免费观看av网址 | 一区国产精品 | 色婷婷aⅴ | 92av视频| 欧美在线观看一区 | 免费污视频 | 国产午夜精品理论片 | 一区二区三区视频免费在线观看 | 国产精品免 | 欧洲亚洲自拍 | 人人澡人人澡 | 成人女同在线观看 | 亚洲AV成人无码一二三区在线 | 午夜影院在线观看18 | 日本少妇高潮喷水xxxxxxx | 国产精品乱码久久久久久久久 | 免费无码av片在线观看 | 午夜影院男女 | 国产精品一区二区自拍 | 99精品热 | 一区二区三区中文视频 | 亚洲自拍偷拍图 | 99999精品视频| 免费v片在线观看 | 欧美第一视频 | aaa级黄色片 | 麻豆视频免费入口 | 波多野结衣一二区 | 欧美人喂奶吃大乳 | 全黄毛片 | av毛片在线播放 | 精品国产亚洲av麻豆 | 久久久久在线 | 天天想你在线观看完整版高清 | 国产一区二区欧美日韩 | 无码精品人妻一区二区三区湄公河 | 老熟妇仑乱一区二区视频 | 色偷偷噜噜噜亚洲男人的天堂 | 久操视频免费在线观看 | 亚洲小说区图片区都市 | 国产少妇在线 | 人妻体体内射精一区二区 | 久久精品免费一区二区 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 夜夜草网站| 国产欧美综合视频 | 波多野结衣中文字幕在线 | 中文字幕日韩精品亚洲一区小树林 | 青青草综合在线 | 91在线播 | av网址免费观看 | 日日爽日日操 | 亚洲网站在线看 | 日韩成人福利视频 | 综合久久久久久 | 香蕉久久国产 | 欧美午夜理伦三级在线观看 | 半推半就一ⅹ99av | 公交上高潮的丁芷晴 | 色视频国产 | 天天色一色 | 亚洲一区二区中文字幕 | 毛片88 | 午夜福利毛片 | 七月色 | 精品国产午夜 | 青娱乐极品视频在线 | 久久久国产精品免费 | 国产精品xxx在线观看 | 不卡中文av| 国产色无码精品视频国产 | 修女也疯狂3免费观看完整版 | 亚洲三级在线视频 | 中文理论片 | 中文字幕日韩欧美一区二区 | 看国产毛片 | 亚洲av成人精品午夜一区二区 | 日韩精品一卡 | 大尺度做爰呻吟舌吻情头 | 日韩欧美亚洲综合 | 少妇一级片 | 欧美一级性生活视频 | 星空大象在线观看免费播放 | 欧美在线黄色 | 国产欧洲亚洲 |