【Android機制】-- Handler運行機制的理解

在Android開發中,機制是必不可少的,佔據着舉足輕重的地位,因此作爲一位開發者,掌握機制相關的技術是很有必要的。相信很多開發者在面試者或多或少都被問過這方面的問題.

【面試技巧】在回答Handler機制時,從Handler的作用開始說起,最後具體到Handler機制在日常開發中的作用,這樣的回答理論與實際相結合就比較完善。

在機制的中有兩種比較重要,分別是Binder機制和Handler機制。
1. 前者用於跨進程通訊,並且通過 ServiceManager 給上層應用提供了大量的服務,
2. 而後者用於進程內部通訊,以消息隊列的形式驅動應用的運行。

1.Handler

1.1 handler的初步理解
    Handler機制是事件驅動程序設計模型在Android開發中的應用,它與其他線程協同工作,接收其他線程的消息並通過該消息更新主線程的內容。
    整個Android Framework 都是基於Handler 機制來運行的,如APP響應點擊事件、啓動Activity、UI界面的更新等。在日常開發中,handler通常用於異步請求,如網絡請求等,同時Handler 也用於定時操作,發送定時消息。
    Handler機制包含4個主要對象:Message、MessageQueue、Looper以及Handler,他們的作用分別爲:
  • Message是在線程之間傳遞的消息;
  • MessageQueue作爲一個消息集合,用來存放Runnable和Message;
  • Looper不停循環消息隊列,只要有消息就從中取出

4個對象各司其職,完成了線程之間的完美通信。如果想在自己的線程中創建Handler必須調用Looper的prepare()與loop()兩個方法。下面通過一個圖例來梳理整個Handler消息處理流程:
這裏寫圖片描述

從該圖可以清晰地看出整個Handler 消息機制處理流程。Handler消息處理首先需要在UI線程中創建一個Handler對象,然後在子線程中調用Handler的sendMessage()方法,接着這個消息會存放在UI線程的MesssgeQueue中,通過Looper對象取出MessageQueue中的消息,最後分發回Handler 的handlerMessage()方法中。

待續。。。。。。

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