Android開發之handlerhandler真的是重新啟動執行緒嗎

2022-12-11 05:06:14 字數 1010 閱讀 5641

1樓:

不是。handler主要用於執行緒間的通訊,通過指定looper來分配其所屬執行緒,不指定的話會預設為主執行緒。其他執行緒可以通過取得該handler物件,利用handler#post()方法來向其所屬執行緒傳送訊息。

另外需要注意handler類和handlerthread類的區別。handler類用於處理執行緒間訊息,而handlerthread類則是啟動一個帶指定handler的執行緒。

順便再補充一點,如果後臺處理結果只需要在ui執行緒上處理的話,可以使用asynctask類,相當於啟動一個只執行一次的執行緒,結束後直接重新整理ui即可,不用對於執行緒間操作考慮太多。

2樓:受司大人

執行結果如下:

這裡就才是我們這種想要的結果,兩者比較我們就會發現,handler雖然實現了runnable介面,但是卻並沒有啟動一個執行緒,而是直接呼叫run方法。那andriod為什麼要這樣設計呢,既然不啟動新的執行緒,為什麼還要多此一舉來實現runnable介面呢,我們繼續**,下次再說。

3樓:砍出平成第一斧

handler是處理訊息佇列的

android:在一個非主執行緒內直接呼叫ui執行緒的handler例項,這樣沒問題嗎?

android 中,怎麼清除一個handler裡的所有訊息佇列?有什麼方法麼

4樓:手機使用者

final void removemessages(int what)

remove any pending posts of messages with code 'what' that are in the message queue.

這個是我看api裡面的一個方法。看解釋應該是異常指定標識what對應的那個訊息msg。。希望對你有幫助

5樓:匿名使用者

有個removecallbacksandmessages方法

傳null參進去

高分ios開發和android開發哪個更有前景

好好學,當你做到極致的時候,任何問題都不是問題,如果你學開發要考慮到性格的話,那麼我建議你去幹點別的,你考慮的這個問題我覺得有很大部分程式設計師是從來沒有想過的 安卓的前景我是比較看好的。目前來看兩個平臺的開發都很有前景,因為只有這兩個寡頭了,windows phone涼涼了,其他的系統一直不火。如...

Android開發工程報錯,求助

你可以先去檢視logcat中的日誌 然後根據錯誤的提示位置進行修改 請貼圖,問題詳細描述?android開發 報錯 截圖太小看不清楚,不影響程式執行就可以不用管他的,估計是什麼過時的方法系統提醒而已。docker build 報錯求助 docker的開發環境 在深入docker和ide細節之前,讓我...

android開發alphavalue 25是什麼意思

不知道什麼意思,請講明白一點,我們才好給出解決方案啊。android的核心是什麼意思 核心版本就是手機的硬體 如主機板,gps,攝像頭,wifi,藍芽等 驅動集合體的版本號!刷完rom加刷核心就是刷完rom後加刷一個zip格式的核心檔案。有核心要求的rom就必須得對應。而有的只是建議你用某個核心,會...