Handler 主線程如何通知子執行緒

2021-06-06 22:54:36 字數 437 閱讀 7394

在 android 中,不可以在子執行緒中更新 ui 的操作,否則會報錯或者異常資訊。

在這種情況下,我們會使用 handler(在 ui 執行緒建立該物件) 接收子執行緒的訊息更新 ui.

可見,此時的 handlemessage 是在主線程中執行的。每個主線程預設有乙個 looper,也就是說在主線程中,下面**是等效的:

myhandler mhandler = new myhandler(getmainlooper());

myhandler mhandler = new myhandler();

但是子執行緒需要手動獲取如:

myhandler mhandler = new myhandler(mhandlerthread.getlooper());

實現主線程、子執行緒雙向通訊可以在各自的執行緒中分別是用 handler 來傳遞資訊和處理訊息。

Handler 主線程如何通知子執行緒

在 android 中,不可以在子執行緒中更新 ui 的操作,否則會報錯或者異常資訊。在這種情況下,我們會使用 handler 在 ui 執行緒建立該物件 接收子執行緒的訊息更新 ui.可以看出,這是子執行緒通知主線程,而主線程沒有直接通知子執行緒,那麼我們如何做到這一點?這樣有什麼好處?好處,很明...

使用Handler子執行緒向主線程通訊方式及原始碼解析

第一步 在主線程中,申明並定義handler物件。private handler mhandler new handler 第二步 在子執行緒中,傳送訊息給主線程。第三步 在子執行緒裡面 1.looper.prepare 呼叫流程looper.prepare looper.prepare true ...

C 子執行緒執行完後通知主線程的方法

怎麼讓子執行緒去做主執行緒的事兒呢,我們只需要把主線程的方法傳遞給子執行緒就行了,那麼傳遞方法就很簡單了委託傳值嘛 下面有乙個例子,子執行緒幹一件事情,做完了通知主線程 public class program private static void fun object obj 次 i threa...