我對“Looper-Handler”一詞比較陌生。我很清楚他們的作業方式,但仍然對他們的架構感到困惑。我也經歷了幾個 SO 問題,但我仍然有一些關于它們的問題。
為了讓他們清楚和總結,任何人都可以回答以下問題嗎?
- 是否
Handler屬于創建它的執行緒? - 我知道每
Looper/MeesageQueue對可以有多個處理程式實體。handler是否可以從其他執行緒創建一個執行緒? - 假設,在主執行緒中我們寫
Handler handler = new Handler (x.getLooper())x 是handler另一個執行緒 X 的 x,那么 MessageQueuehandler將實際發布到哪個?
如果我在任何地方錯了,請糾正我。謝謝。
uj5u.com熱心網友回復:
- 對,如果您使用默認建構式
val h = Handler()。默認建構式將此處理程式與Looper當前執行緒相關聯。如果該執行緒沒有 Looper,則該處理程式將無法接收訊息,因此會引發例外。 - 是的。如果您使用建構式,它接受與另一個關聯的.
Looperval h = Handler(looper)looperThread handler將與ThreadX 相關聯,因為該執行緒的 looper 用于創建handler.
第三題與第二題類似。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/411981.html
標籤:
