android中Handler的用法

2021-06-25 23:02:20 字數 1064 閱讀 3081

寫了乙個demo,**如下:

public class mainactivity extends activity 

});endbutton.setonclicklistener(new onclicklistener()

});} //建立handler物件

handler handler = new handler();

runnable updatathread = new runnable()

}; }

bundle是什麼:

bundle是乙個特殊的map,它是傳遞資訊的工具,它的鍵只能是string型別,而且值也只能是常見的基本資料型別。

如何讓handler執行runnable時開啟新的執行緒:

1、首先生成乙個handlerthread物件,實現了使用looper來處理訊息佇列的功能,這個類由android應用程式框架提供

handlerthread handlerthread = new handlerthread("handler_thread");

2、在使用handlerthread的getlooper()方法之前,必須先呼叫該類的start();

handlerthread。start();

3、根據這個handlerthread物件得到其中的looper物件。

4、建立自定義的繼承於handler類的子類,其中實現乙個引數為looper物件的構造方法,方法內容呼叫父類的建構函式即可。

5、使用第三步得到的looper物件建立自定義的handler子類的物件,再將訊息(message)傳送到該handler的訊息佇列中,handler複寫的handlemessage()將會執行來處理訊息佇列中的訊息。

訊息,即message物件,可以傳遞一些資訊,可以使用arg1。arg2,object傳遞一些整形或者物件,還可以使用message物件的 setdata(bundle bundle)來講bundle物件傳遞給新建立的執行緒,新建立的執行緒在執行handlemessage(message msg)時可以從message中利用getdata()提取出bundle物件來進行處理。

android中的Handler機制

一 為什麼要用handler 之所以需要跨執行緒通訊是因為在 android 中主線程通常只負責 ui 的建立和修改,子執行緒負責網路訪問和耗時操作,因此,主線程和子執行緒需要經常配合使用才能完成整個 android 功能,這時候就有了handler的出現。二 什麼是handler 訊息佇列,先進後...

Android中的Handler機制

1 android系統不允許在主線程中執行耗時操作。activity和service不超過5秒,boroadcastreceiver元件廣播不超過10秒 2 耗時操作交給工作執行緒去完成。有時,耗時工作完成後,需要通知主線程 需要更新ui元件,需要有一種機制在主線程和工作現場之間進行通訊。這是機制在...

Android中的Handler類介紹

在android程式設計中,只有事件處理往往並不能滿足使用者與程式互動的需要,下面將對android平台下訊息的傳遞機制handler訊息進行介紹。在android平台中,新啟動的執行緒是無法訪問activity裡的widget的,當然也不能將執行狀態外送出來,這就需要有handler機制進行訊息的...