Android消息傳遞機制的理解(Handler類)

Handler類的概述

Android系統是通過Looper、Handler來實現消息的循環機制。消息循環是針對於多線程的,每個線程都可以有自己的消息隊列和消息循環。其中:

Looper類負責管理消息隊列和消息循環

Handler類負責把消息加入特定的Looper的消息隊列中,並處理該消息隊列中的消息

Handler類的應用場所:需要進行延時處理的場合

       ①某些不需要實時顯示的,可以先放到消息隊列中(例如彈出提示信息,更新UI等)

       ②在一個子線程中去創建一個Handler,然後使用這個handler實例在任何其他線程中發送消息,最終處理消息的代碼都會在你創建Handler實例的線程中運行(例如線程間的通信 :Handler+Message)

Handler類常用的方法

handleMessage(Message  msg) 子類對象通過該方法接受信息
sendEmptyMessage(int   what) 發送只有一個what值得消息
sendMessag(Message what) 發送消息的Handler,通過handleMessage()方法接受
post(Runnable r) 將一個線程添加到消息隊列中

開發帶有Handle類的程序步驟如下:

①在Activity或Activity的Widget中創建Handler對象,並重寫handlemessage()方法;

②在onCreate()主線程創建一個新線程,並調用sendMessage()或sendEmptyMessage()方法向Handle發送消息;

③在Handler類的對象中用handleMessage()方法接受信息,根據不同的消息執行不同的操作;

利用handle類開發的實用案例

(利用Handler實現更新進度條、定時處理、獲取網頁內容、主線程與分線程之間的消息傳遞)

案例鏈接:https://github.com/xschao/Handle.git

環境:AndroidStudio3.3.2直接導入如下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章