非同步訊息機制的理解

2021-07-02 18:35:40 字數 458 閱讀 4648



1: looper準備工作場地(sthreadlocal), 和工作用的道具(messagequeue)

2 : handler可以理解為 該機制的外掛程式,在activity中,因為activitythread已經定義了looper,所以直接例項化hander就可以使用了

3:  messagequeue是系統中儲存有序資源的資料結構,對使用者來說是黑盒子

@1: 思考場景,如果thread是自己建立的,那麼handler如何使用呢?

hander的建構函式中,有用thread作為引數的嗎? 檢視**之後發現用的是looper,也就是說looper代表包裝了thread的實體,所以直接傳入looper

@2: 假定activity的其他執行緒中想要重新整理ui的話,該怎麼辦呢? 非同步的訊息機制便是乙個好的方案,handler為首選

@3: 空間上跨執行緒的通訊可以用非同步訊息機制,時間上也可以延遲。

非同步訊息機制

1.乙個執行緒裡面只有乙個looper。2.子執行緒也可建立handler。前後需分別加上looper.prepare 和looper.loop 標準寫法 looper.prepare handler mhandler newhandler looper.loop 在prepare 中建立loope...

非同步訊息處理機制

借鑑 為什麼不能在子執行緒更新ui?1 ui是非執行緒安全的,主線程和子執行緒同時更新ui的話會導致錯誤,如ui錯亂之類的。2 ui更新是很耗效能的,更別說為了執行緒安全加鎖了,最簡單的方法就是更新ui的操作放到乙個執行緒中,即主線程 handler機制 looper 維持乙個thread物件以及m...

非同步訊息處理機制

因為android不允許在子執行緒中進行更新ui,非同步訊息處理機制來解決這個問題。android中的非同步訊息處理由4部分組成 message,handler,messagequeue和looper。message 傳遞訊息 handle 傳送,處理資訊 messagequeue 訊息隊裡,存放h...