obtainmessage()得到乙個message物件。
建立乙個message然後傳送是這麼寫的:
message msg = new message();
msg.arg1 = 1;
msg.arg2 = 2;
msg.what = 3;
msg.obj = object;
handler.sendmessage(msg);
效能優化後這樣寫:
message msg = handler.obtainmessage();
msg.arg1 = 1;
msg.arg2 = 2;
msg.what = 3;
msg.obj = object;
handler.sendmessage(msg);
相當於:
message msg = handler.obtainmessage(int what,int arg1, int arg2, object obj )
handler.sendmessage(msg);
再簡練一點(這段**在建立的message中只傳入兩個引數,並讓handler延遲10ms傳送訊息):
handler.sendmessagedelayed(handler.obtainmessage(int what,object obj), 10);
至於接受訊息,肯定是在handlemessage(message msg)中:
handler
handler = new
handler()
};
給個例項看一看:
public
boolean
ontouch
(view view, motionevent event)
return
false;
} handler handler = new handler()
}};
Handler傳送訊息
obtainmessage 得到乙個message物件。建立乙個message然後傳送是這麼寫的 message msg new message msg.arg1 1 msg.arg2 2 msg.what 3 msg.obj object handler.sendmessage msg 效能優化後...
Handler訊息機制
android的訊息機制主要是指handler的執行機制,也就是handler message messagequeue looper threadlocal之間的工作過程。handler 主要用於傳送和處理訊息。messagequeue 訊息佇列,主要用於存放所有通過handler傳送的messa...
handler傳送訊息之後做了什麼事情。
首先來看handler發訊息的幾個方式 handler提供了好幾個傳送訊息的方式。post系列和sendmessage系列都是差不多的最終都會呼叫sendmessageattime 函式 這裡用post系枚舉例 handler.post runnable r 入參是乙個runnable。看看裡面做了...