handler消息處理機(jī)制的用法-創(chuàng)新互聯(lián)

class LooperThread extends Thread {

成都創(chuàng)新互聯(lián)公司長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為金山企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,金山網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

  public Handler mHandler;

  public void run() {

new Handler() {

      public void handleMessage(Message msg) {

        // process incoming messages here

Post:Post允許把一個Runnable對象入隊到消息隊列中。它的方法有:post(Runnable)、    postAtTime(Runnable,long)、postDelayed(Runnable,long)。

sendMessage:sendMessage允許把一個包含消息數(shù)據(jù)的Message對象壓入到消息隊列中。它的方法有:sendEmptyMessage(int)、sendMessage(Message)、sendMessageAtTime(Message,long)、sendMessageDelayed(Message,long)。

Message:Message是一個final類,所以不可被繼承。使用Message.obtain()這個靜態(tài)的方法或者Handler.obtainMessage()獲取。Message.obtain()方法具有多個重載方法,大致可以分為為兩類,一類是無需傳遞Handler對象,對于這類的方法,當(dāng)填充好消息后,需要調(diào)用Handler.sendMessage()方法來發(fā)送消息到消息隊列中。第二類需要傳遞一個Handler對象,這類方法可以直接使用Message.sendToTarget()方法發(fā)送消息到消息隊列中,這是因為在Message對象中有一個私有的Handler類型的屬性Target,當(dāng)時obtain方法傳遞進(jìn)一個Handler對象的時候,會給Target屬性賦值,當(dāng)調(diào)用sendToTarget()方法的時候,實際在它內(nèi)部還是調(diào)用的Target.sendMessage()方法。

總結(jié):一個Looper對應(yīng)一個MessageQueue,一個線程對應(yīng)一個Looper,一個線程可以有多個looper。

Handler handler = new Handler(){...}創(chuàng)建Handler。這樣創(chuàng)建的handler是在主線程即UI線程下的Handler,即這個Handler是與UI線程下的默認(rèn)Looper綁定的。HandlerThread實際上就一個Thread,只不過它比普通的Thread多了一個Looper。創(chuàng)建HandlerThread時要把它啟動了,即調(diào)用start()方法。然后創(chuàng)建Handler時將HandlerThread中的looper對象傳入。


HandlerThread thread = new HandlerThread("MyHandlerThread");
thread.start();
mHandler = new Handler(thread.getLooper());
mHandler.post(new Runnable(){...});
那么這個Handler對象就是與HandlerThread這個線程綁定了(這時就不再是與UI線程綁定了,這樣它處理耗時操作將不會阻塞UI)。

上文描述的就是handler消息處理機(jī)制的用法,具體使用情況還需要大家自己動手實驗使用過才能領(lǐng)會。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站名稱:handler消息處理機(jī)制的用法-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://muchs.cn/article8/cecpip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、小程序開發(fā)、企業(yè)建站、虛擬主機(jī)自適應(yīng)網(wǎng)站、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站