handler類
(一)概述
例如:handler在工作執行緒中傳送訊息,該訊息傳送至訊息佇列中,等待處理。在主線程中handler從訊息佇列中接
收訊息,並根據訊息中的資訊決定如何更新ui。
每個handler例項都會繫結到建立它的執行緒中。
handler可以傳送訊息或runnable值某個執行緒的訊息佇列中。
(二)構造方法
1.public handler handler();
無參構造方法
2.handler(looper looper)
作用:帶參構造方法,用於建立handler物件。將自定義的用於管理訊息佇列的looper物件放在handler.mlooper成
員變數中。
引數looper:自定義的管理訊息佇列的物件。
3.handler(callback callback)
作用:帶參構造方法,建立handler物件
引數:callback:自定義的用於處理訊息的物件,該物件必須實現handler.callback介面。
說明:1)callback介面中宣告了handlemessage()方法,程式設計師在該方法中編寫處理訊息的**。
2)callback儲存在handler.mcallback成員變數中。在handler處理訊息時將呼叫mcallback中封裝的**。
4.handler(looper looper,callback callback)
作用:帶參構造方法,建立handler物件
引數:參見2和3中關於looper和callback的說明
(三)常用方法
1.sendemptymessage(int what)
作用:從work thread(工作執行緒)向主線程傳送空訊息
引數:當多個執行緒向主線程傳送訊息,what用於區別不同的執行緒
2.sendmessage(message msg)
作用:從workthread向主線程傳送訊息
引數msg:存放訊息的資料物件
3.handlemessage(message msg)
作用:接收並處理從work thread傳送的訊息
引數msg:sendmessage傳送過來的訊息物件
4.public final boolean android.os.handler.post(runnable r)
作用:將乙個實現了runnable的任務物件傳送中目標執行緒的訊息佇列中。
程序中線程間通訊
一般而言,應用程式中的乙個次要執行緒總是為主執行緒執行特定的任務,這樣,主線程和次要執行緒間必定有乙個資訊傳遞的渠道,也就是主線程和次要執行緒間要進行通訊。這種執行緒間的通訊不但是難以避免的,而且在多執行緒程式設計中也是複雜和頻繁的,下面將進行說明。由於屬於同乙個程序的各個執行緒共享作業系統分配該程...
MFC中線程間通訊 主線程與子執行緒間的通訊
第0步 宣告乙個執行緒 乙個事件 cwinthread m hthread 接收執行緒的控制代碼 handle hstarteven 第一步 定義自己的訊息 define my message wm user 100第二步 在傳送訊息的執行緒中 得到需要傳輸的資料 cstring str getdl...
android執行緒間通訊
原文 1,通過handler機制.private void one new thread catch interruptedexception e message message new message message.what 123 message.obj 通過handler機制 handler...