在android程式設計中,只有事件處理往往並不能滿足使用者與程式互動的需要,下面將對android平台下訊息的傳遞機制handler訊息進行介紹。
在android平台中,新啟動的執行緒是無法訪問activity裡的widget的,當然也不能將執行狀態外送出來,這就需要有handler機制進行訊息的傳遞了,handler類位於android.os包下,主要的功能是完成activity的widget與應用程式中線程之間的互動。接下來對該類中常用的方法進行介紹,如下表所示。
方法簽名 描
述 public void handlemessage (message
msg)
子類物件通過該方法接收資訊
public final boolean sendemptymessage (int what)
傳送乙個只含有
what
值的訊息
public final boolean sendmessage (message
msg)
傳送訊息到
handler
, 通過
handlemessage
方法接收
public final boolean hasmessages (int what)
監測訊息佇列中是否還
有what
值的訊息
public final boolean post (runnable
r) 將乙個執行緒新增到訊息佇列
在多執行緒中經常要使用handler,thread和runnable這三個類。android的cpu分配的最小單元是執行緒,handler一般是在某個執行緒裡建立的,因而handler和thread就是相互繫結的,一一對應。 而runnable是乙個介面,thread是runnable的子類。所以說,他倆都算乙個執行緒。 handlerthread顧名思義就是可以處理訊息迴圈的執行緒,他是乙個擁有looper的執行緒,可以處理訊息迴圈。 與其說handler和乙個執行緒繫結,不如說handler是和looper一一對應的。 最後需要說明的是,在ui執行緒(主線程)中:
mhandler=new handler();
mhandler.post(new runnable()
這個執行緒其實是在ui執行緒之內執行的,並沒有新建執行緒。 常見的新建執行緒的方法是:
thread thread = new thread();
thread.start();
handlerthread thread = new handlerthread("string");
thread.start();
Android中的Handle基礎應用一
下面來個例子 public class myhandleactivity extends activity catch interruptedexception e system.out.println sleep over message msg new message bundle b new ...
執行緒的handle和tid
執行緒是cpu分配時間執行任務的最小單位。在linux中,核心並沒有執行緒和程序的概念,所謂執行緒,只是可以和其他兄弟執行緒共享資源的程序。在posix中,pthread create建立執行緒,並將執行緒的handle或者說id傳遞給第乙個引數,在這還是稱其為handle。這個handle與pth...
selenium學習 8 handle的切換
在我們進行測試的過程中,經常會遇到點開超連結開啟另乙個新視窗的情況,即 target blank 這種情況下,如果要在新視窗進行操作,需要將焦點移到新視窗上,本文將介紹這種情況的處理 切換視窗的方法 1 獲取當前頁面視窗的控制代碼 current window handle 2.獲取所有頁面視窗的控...