1、將message或runnable應用post()或者sendmessage()方法傳送到messagequeu中,在傳送時可以指定延遲時間,傳送時間及要攜帶的bundle資料,當messagequeue迴圈到該message時,呼叫相應的handler物件的handlermessage()方法對其進行處理。
2、在子執行緒中與主線程進行通訊,也就是在工作執行緒中與ui執行緒進行通訊。
runnable run = new runnable()
};handler.post(run);
當呼叫post(runnable r)方法時候,立即傳送runnable物件,該runnable物件最後被封裝成message物件。
handler不能直接傳送bundler物件,這樣會報錯,需要把bundler物件放進message中進行處理,如下:
bundle bundle = new bundle();
bundle.putboolean("one", false);
message msg = handler1.obtainmessage();
msg.setdata(bundle);
handler1.sendmessage(msg);
handler訊息處理機制
handler主要用來更新ui 因為涉及到執行緒安全,android必須在ui執行緒 即主線程 裡才能更新ui,在其他執行緒裡更新ui會報錯,而一些耗時的操作又必須通過開啟新的執行緒來執行,這就要用到handler來傳遞訊息了。在主線程中建立乙個handler的例項,並重寫handlermessag...
Android非同步訊息處理Handler的使用
眾所周知,android的ui執行緒是不安全的,其它執行緒不可以直接操作ui。那麼就產生了乙個問題 android非同步訊息處理 如何在其它執行緒進行ui更新操作。由於ui都是由主線程繪製的,在進行耗時操作的時候會導致主線程繁忙,最後導致ui介面卡頓或無反應,所以在進行耗時操作的時候我們應該新建一條...
Handler訊息處理機制
剛開始接觸android,邊學習邊做筆記,希望大家多指正。經常在 中看到sendmessage 族的一些函式,開始時總搞不明白訊息傳送到 去了,誰去處理,什麼時候處理。下面是問題解答。至於開始的幾個疑問,我是這樣理解的。訊息傳送出去,就相當於馬上要被處理了。就像進地鐵一樣,已經站到了進站的佇列中 假...