国产成人精品久久二区二区,国产精品碰碰现在自在拍,俄罗斯一级成人毛片,337p欧洲大胆艺术,亚洲不卡护士高清av在线播放,国产短视频精品区第一页,老师喂我乳,我脱他她胸罩

DAV首頁(yè)
數(shù)字音視工程網(wǎng)

微信公眾號(hào)

數(shù)字音視工程網(wǎng)

手機(jī)DAV

null
null
null
卓華,
招商,
null
null
null
快捷,
null

我的位置:

share

Android消息處理系統(tǒng)原理

來(lái)源:數(shù)字音視工程網(wǎng)        編輯:ann    2012-10-23 00:00:00     加入收藏

  Android消息處理系統(tǒng)原理

  Android系統(tǒng)中Looper負(fù)責(zé)管理線(xiàn)程的消息隊(duì)列和消息循環(huán),具體實(shí)現(xiàn)請(qǐng)參考Looper的源碼。 可以通過(guò)Loop.myLooper()得到當(dāng)前線(xiàn)程的Looper對(duì)象,通過(guò)Loop.getMainLooper()可以獲得當(dāng)前進(jìn)程的主線(xiàn)程的Looper對(duì)象。

  前面提到Android系統(tǒng)的消息隊(duì)列和消息循環(huán)都是針對(duì)具體線(xiàn)程的,一個(gè)線(xiàn)程可以存在(當(dāng)然也可以不存在)一個(gè)消息隊(duì)列和一個(gè)消息循環(huán)(Looper),特定線(xiàn)程的消息只能分發(fā)給本線(xiàn)程,不能進(jìn)行跨線(xiàn)程,跨進(jìn)程通訊。但是創(chuàng)建的工作線(xiàn)程默認(rèn)是沒(méi)有消息循環(huán)和消息隊(duì)列的,如果想讓該線(xiàn)程具有消息隊(duì)列和消息循環(huán),需要在線(xiàn)程中首先調(diào)用Looper.prepare()來(lái)創(chuàng)建消息隊(duì)列,然后調(diào)用Looper.loop()進(jìn)入消息循環(huán)。如下例所示:

  class LooperThread extends Thread { public Handler mHandler; public void run() { Looper.prepare(); mHandler = new Handler() { public void handleMessage(Message msg) { // process incoming messages here } }; Looper.loop(); } }

  這樣你的線(xiàn)程就具有了消息處理機(jī)制了,在Handler中進(jìn)行消息處理。

  Activity是一個(gè)UI線(xiàn)程,運(yùn)行于主線(xiàn)程中,Android系統(tǒng)在啟動(dòng)的時(shí)候會(huì)為Activity創(chuàng)建一個(gè)消息隊(duì)列和消息循環(huán)(Looper)。詳細(xì)實(shí)現(xiàn)請(qǐng)參考ActivityThread.java文件。

  Handler的作用是把消息加入特定的(Looper)消息隊(duì)列中,并分發(fā)和處理該消息隊(duì)列中的消息。構(gòu)造Handler的時(shí)候可以指定一個(gè)Looper對(duì)象,如果不指定則利用當(dāng)前線(xiàn)程的Looper創(chuàng)建

  一個(gè)Activity中可以創(chuàng)建多個(gè)工作線(xiàn)程或者其他的組件,如果這些線(xiàn)程或者組件把他們的消息放入Activity的主線(xiàn)程消息隊(duì)列,那么該消息就會(huì)在主線(xiàn)程中處理了。因?yàn)橹骶€(xiàn)程一般負(fù)責(zé)界面的更新操作,并且Android系統(tǒng)中的weget不是線(xiàn)程安全的,所以這種方式可以很好的實(shí)現(xiàn)Android界面更新。在Android系統(tǒng)中這種方式有著廣泛的運(yùn)用。

  那么另外一個(gè)線(xiàn)程怎樣把消息放入主線(xiàn)程的消息隊(duì)列呢?答案是通過(guò)Handle對(duì)象,只要Handler對(duì)象以主線(xiàn)程的Looper創(chuàng)建,那么調(diào)用Handler的sendMessage等接口,將會(huì)把消息放入隊(duì)列都將是放入主線(xiàn)程的消息隊(duì)列。并且將會(huì)在Handler主線(xiàn)程中調(diào)用該handler的handleMessage接口來(lái)處理消息

免責(zé)聲明:本文來(lái)源于網(wǎng)絡(luò)收集,本文僅代表作者個(gè)人觀(guān)點(diǎn),本站不作任何保證和承諾,若有任何疑問(wèn),請(qǐng)與本文作者聯(lián)系或有侵權(quán)行為聯(lián)系本站刪除。(原創(chuàng)稿件未經(jīng)許可,不可轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明來(lái)源)
掃一掃關(guān)注數(shù)字音視工程網(wǎng)公眾號(hào)

相關(guān)閱讀related

    評(píng)論comment

     
    驗(yàn)證碼:
    您還能輸入500