android 執行緒間的通訊

2021-06-07 06:00:09 字數 502 閱讀 9478

在android,執行緒分為有訊息迴圈的執行緒和沒有訊息迴圈的執行緒,有訊息迴圈的執行緒一般都會有乙個looper,這個是android 的新概念。我們的主線程(ui執行緒)就是乙個訊息迴圈的執行緒。針對這種訊息迴圈的機制,我們引入乙個新的機制handler,我們有訊息迴圈,就要往訊息迴圈裡面傳送相應的訊息,自定義訊息一般都會有自己對應的處理,訊息的傳送和清除,把這些都封裝在handler裡面,注意handler只是針對那些有looper的執行緒,不管是ui執行緒還是子執行緒,只要你有looper,我就可以往你的訊息佇列裡面新增東西,並做相應的處理。

但是這裡還有一點,就是只要是關於ui相關的東西,就不能放在子執行緒中,因為子執行緒是不能操作ui的,只能進行資料、系統等其他非ui的操作。

乙個handler的建立它就會被繫結到這個執行緒的訊息佇列中,如果是在主線程建立的,那就不需要寫**來建立訊息佇列了,預設的訊息佇列會在主線程被建立。但是如果是在子執行緒的話,就必須在建立handler之前先初始化執行緒的訊息佇列。

測試**如下:

參考文章:

android執行緒間通訊

原文 1,通過handler機制.private void one new thread catch interruptedexception e message message new message message.what 123 message.obj 通過handler機制 handler...

Android通訊 Android執行緒間通訊

android程式中,執行緒分為主線程 ui thread 和工作執行緒 work thread 我們要遵循單執行緒模型原則 安卓ui的操作執行緒不安全,安卓ui的操作必須在主線程進行。1 多執行緒任務開發可以通過以下幾個方式實現 handler asynctask。詳見 2 如果子執行緒的資料想通...

Android中線程間的通訊

handler類 一 概述 例如 handler在工作執行緒中傳送訊息,該訊息傳送至訊息佇列中,等待處理。在主線程中handler從訊息佇列中接 收訊息,並根據訊息中的資訊決定如何更新ui。每個handler例項都會繫結到建立它的執行緒中。handler可以傳送訊息或runnable值某個執行緒的訊...