第二個例子,postDelayed(Runnable, long)外面放一個子線程,這樣的例子更好,謝謝講解,就是講的太快了。
2018-06-19
你可以創建自己的線程,并通過Handler與主應用程序線程進行通信,這是通過調用上面介紹的post或sendMessage方法來發送Runnable或Message完成的,但這是在你創建的新線程里來完成的。然后給定的Runnable或Message將被安排在Handler所綁定的message queue消息隊列中,并在適當時進行處理。
2018-06-19
當為你的應用程序創建一個進程(process)時,這個進程的主線程(main thread)專門用于運行一個message queue消息隊列,該消息隊列負責管理頂級應用程序對象(比如說活動activities,廣播接收器broadcase receivers等)以及它們創建的任何窗口(windows)。
2018-06-19
在posting或sending給Handler時,您可以在message queue準備就緒時立即處理該item,或者在處理它之前指定延遲或指定延遲處理的絕對時間。后兩者允許你實現timeouts,ticks以及其他基于時間的行為。
2018-06-19
Handler主要有兩個用途:(1)安排messages和runnables在之后的某個時間去執行,也就是定時的執行messages和runnables對象;(2)將一個處理的事件入隊并且在另外一個線程上去執行。
2018-06-19
我把文檔認真翻譯了一下,希望能幫到大家
一個Handler允許你發送或處理一個Message或Runnable對象,并且這個Handler與創建他的線程的MessageQueue相關聯。每一個Handler實例與一個帶有Message queue的單一線程進行綁定。當你創建一個新的Handler實例的時候,他默認會綁定到你創建Handler的線程的Message queue當中。從這時起,Handler將向該消息隊列(message queue)傳遞消息(message)和可運行信息(runnables),并且在執行完這些信息后,將所傳遞的信息在message queue中移除。
一個Handler允許你發送或處理一個Message或Runnable對象,并且這個Handler與創建他的線程的MessageQueue相關聯。每一個Handler實例與一個帶有Message queue的單一線程進行綁定。當你創建一個新的Handler實例的時候,他默認會綁定到你創建Handler的線程的Message queue當中。從這時起,Handler將向該消息隊列(message queue)傳遞消息(message)和可運行信息(runnables),并且在執行完這些信息后,將所傳遞的信息在message queue中移除。
2018-06-19