-
handler、messagequeue、looper查看全部
-
mark查看全部
-
能不能不用Handler查看全部
-
Handler查看全部
-
最終截圖查看全部
-
Handler--查看全部
-
Handler-1查看全部
-
Handler0查看全部
-
什么是Handler查看全部
-
need watch again!查看全部
-
每個線程都對應一個looper,在線程里面創建的handler默認都會與這個looper對應 * 一個線程可以有多個handler與唯一的一個looper對應,但有且只有一個looper * 主線程中創建的handler默認會有一個系統自動創建的looper與之對應,子線程中的handler會默認與該線程中手動創建的Looper對應(可以更改,下節課程)自動關聯 * 而我們自己在子線程中創建handler對象的時候系統不會自動為我們創建,我們需要自己創建該線程相關的looper(Looper.prepare();)并且手動Looper.loop()輪詢它的MessageQueue(死循環)查看全部
-
google為什么設計只能通過handler機制來更新ui的?最根本的目的就是解決多線程并發問題。 假設如果在一個Activity當中,有多個線程去更新ui,并且都沒有加鎖機制,那么就會出現更新界面錯亂;但是如果都進行加鎖處理的話,又會導致性能下降因此,產生了這種handler的更新機制,根本不用去關心多線程的問題,所有的更新ui的操作,都是在主線程的消息隊列當中去輪詢處理 Looper:(1)Looper作為一個消息封裝的載體,包含了一個消息隊列messageQueue,所有的Handler發送的消息都經過這個消息隊列——要發送的消息會往這個消息隊列中插入或移除。 (2)Looper.loop()方法是一個死循環,不斷輪詢messageQueue,如果有消息存在取出并發送給handler,然后handler處理消息,沒有就阻塞 Handler:內部會和Looper進行關聯,也就是說在Handler內部可以找到Looper,找到了Looper也就找到了MessageQueue。調用handler.sendMessage()就是向消息隊列中發送消息;然后Looper輪詢MessageQueue,將message發送給Handler本身進行處理。 MessageQueue:一個消息隊列,可以添加消息,并處理消息 總結:handler負責發送消息,Looper負責接收Hnandler發送的消息,并直接把消息回傳給hanlder自己。MessageQueue是一個存儲消息的容器。查看全部
-
handler和looper的關系: 總結:handler負責發送消息,looper負責接收handler發送的消息,并直接把消息回傳給handler自己 MessageQueue就是一個存儲消息的容器。查看全部
-
android為什么設計handler機制更行UI?查看全部
-
不用handler可以嗎? 不行。 Android在設計的時候就封裝了一套消息創建、傳遞、處理機制,如果不遵循這樣的機制就沒有辦法更新UI信息,會拋出異常信息。查看全部
舉報
0/150
提交
取消