Handler允許你發送和處理信息,Runnable對象與線程的MessageQueue相關聯。每個Handler實例與一個線程和線程的消息隊列相關聯。當你創建一個一個新的消息處理程序,它將被綁定到創建他的消息線程。
Hander有兩種主要的用途:調度信息以及在未來的某一刻將被執行。在不同的線程排列動作。
實現調度信息可以使用以下方法** post(Runnable)
,post(Runnalbe, long)
,postDelayed(Runnalbe,long)
,sendEmptyMessage(int)
,sendMessage(Message)
,sendMessageAtTime(Message,long)
,sendMessageDelayed(Message,long)
**方法,post版本的方法允許你排隊Runalbe對象,當messagequeue收到對象時可以調用,sendMessage版本允許你排隊Message對象包含一個bundle對象儲存數據然后調用handlemessage(message)方法進行處理。
當Handler接受post 或者 send方法,你
Return | Func |
---|---|
interface | Handler.Callback 回調接口 |
Public Constructors |
---|
Handler() 當前線程Looper綁定的handler的默認構造器 |
Handler(Handler.Callback callback) |
Handler(Looper looper) 使用提供的Looper替代默認的 |
Handler(Looper looper,Handler.Callback callback) |
Return | Func |
---|---|
void | dispathMessage(Message msg) Handle system message here |
final void | dump(Printer pw , String prefix) |
final Looper | getLooper() |
String | getMessageName(Message message)返回message標記的名字 |
void | handleMessage(Message msg)在子類中必須實現以處理接受到的消息 |
final boolean | hasMessage(int what,object object)查看消息隊列中是否有message 包含what 代碼 以及 object對象 |
final boolean | hasMessage(int what) 查看消息隊列中是否有message 包含what代碼 |
final Message | obtainMessage(int what, int arg1, int arg2)匹配消息池中包含what,arg1,arg2成員,并且返回該消息 |
final Message | obtainMessage() 從全局消息池中返回一個新的消息 |
final Message | obtainMessage(int what, int arg1,int arg2, Object obj) |
final Message | obtainMessage(int what) |
final Message | obtainMessage(int what,Object obj) |
final boolean | post(Runalble r)將Runalbe r 添加到消息隊列 |
final boolean | postAtFrontQueue(Runable r) |