1. 程式人生 > >Android的Handler機制用法

Android的Handler機制用法

使用handler一般是在擁有執行緒的情況下進行使用,一方面可以對執行緒進行把控,另一方面也可以防止我們的app出現UI程序阻塞情況。

大致的解釋就是:一個新起的執行緒在執行,我們可以利用handler進行一個sendMsg,然後接收到這個msg後,執行一些我們的操作。

handler可以很好的進行執行緒的把控。

包括有些程式碼,不能在主執行緒執行,例如:我想對網路圖片進行載入,並且將網路圖片的url要轉換成Bitmap型別,然後將圖片以字串的形式post到服務端。

這裡進行圖片url轉bitmap的時候,就不可以在主執行緒進行。

所以,就用到了我們的執行緒的把控,當你url轉到bitmap以後,我在對你的圖片進行post。

利用handler就可以輕鬆的解決了。

張貼一部分關鍵的程式碼,看完上述的描述,應該也差不多可以理解了。

程式碼只是輔助的理解。

final Handler handler = new Handler() {
    @Override
public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if (msg.what == 0x123) {        //相應的操作 }
    }
};

new Thread(new Runnable() {
    @Override
public void 
run() { // TODO Auto-generated method stub // 在此執行耗時工作,執行完畢後呼叫handler傳送訊息 try { // TODO: http request. Message msg = new Message();handler.sendEmptyMessage(0x123); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start();

我自己對於handler的研究,目前還不是特別透徹,包括底層的一些結構,不知也就不寫了,免得誤人子弟。大家權當一看,等我學的更加完善的時候,會繼續進行修改更新。