為什麼要用Handler

2021-08-20 13:22:19 字數 1196 閱讀 5561

一、什麼是handler?

注:執行緒分為主線程(主線程又叫ui執行緒,只能有乙個主線程)和子執行緒(可以有多個)handler只能在主線程裡執行

handler是android給我們提供用來更新ui的一套機制,也是一套訊息處理機制,我們可以發訊息,也可以通過它 處理訊息。

二、為什麼要用handle?
因為android在設計的時候就封裝了一套訊息建立、傳遞、處理。如果不遵循就不能更新ui資訊,就會報出異常(所謂的非同步訊息處理)

三、 handler的工作原理?

handler的工作原理是handler傳送訊息給messagequee給形成handle messagequee再由handle messagequee傳遞訊息給looper(乙個物件)最後由looper遞交給 handler處理(乙個handler裡面必須要有乙個looper)

handler、looper、messagequeen、message的關係

message: handler接收和處理的訊息物件

messagequeen: 儲存訊息物件的佇列

looper: 負責讀取messagequeen中的訊息,讀到訊息之後就把訊息交給handler去處理。

handler:傳送訊息和處理訊息

四、什麼是message quee

message quee就是儲存訊息物件的佇列(訊息來自於message)

五、handler怎麼用

handler主要有傳送訊息和處理訊息兩大作用

handler傳送訊息給message而message再由 messagequeen進行訊息的儲存,接著由looper負責讀取 messagequeen中的訊息,最後由handler處理訊息。

總結:

looper的作用:每個執行緒只有乙個looper,他負責管理messagequeue,會不斷的從messagequeue取出訊息,分發給物件 的handler

messagequeue的作用:由looper管理,而messagequeue則採用先進的方法來管理message!

handler的作用:它把訊息傳送給looper管理的messagequeue,並負責處理looper分發給他的訊息。

為什麼要用 enable shared from

樓主 hma if you think you can,you can.panrainbow 憂鬱淡藍 於 tue nov 9 11 48 38 2010 提到 引入enable shared from this的原因是可以實現返回值為指向該類本身的 shared ptr,為什麼以this為拷貝構造...

為什麼要用補碼

在探求為何機器要使用補碼之前,讓我們先了解原碼,反碼和補碼的概念.對於乙個數,計算機要使用一定的編碼方式進行儲存.原碼,反碼,補碼是機器儲存乙個具體數字的編碼方式.原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 原 1000 ...

為什麼要用AndroidStudio

原因一 android studio是基於intellij idea開發的,所以android studio繼承了intellij idea的所有功能.原因二 android studio是谷歌開發的,專門用於android開發的編輯器,換句話說是親兒子,谷歌會把所有好吃的好用的先給親兒子.原因三 ...