Android中的Handler類介紹

2021-05-25 15:00:45 字數 1284 閱讀 4870

在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.獲取所有頁面視窗的控...