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

時間 2022-05-06 18:20:01

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參進去

android應用開發和android軟體測試工程師哪個好

半塘無水 這要依據個人興趣選擇,兩者都具有很好的職業前景 1 android應用開發 a 進入2010年之後,android的應用開發進入了一個 式增長的狀態,從09年的不到1萬款應用程式增加到現在的9萬,而且即將突破10萬,這也從開發者這一方面展現了使用者不斷增多的現象。不過需要注意的是,雖然數值...

android開發中,tabactivity如何將獲取到的數

潮飛鸞 intent就可以 addtab mytabhost,1,new intent this,子activity.class putextra type 1 通過intent中加入bundle傳輸資料,如由tabactivity傳入mactivity資料height 10 在tabactivit...

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

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