在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
非ui線程真的不能更新ui嗎?答:某種情況下可以。
在oncreate方法中開啟子線程更新ui,在thread沒有休眠的情況下,因為ViewRootImp在activity的onresume方法中創建,在ViewRootImp方法中判斷當前線程是否為主線程,oncreate在onresume之前執行,所以這種情況下,可以進行更新ui操作。
在oncreate方法中開啟子線程更新ui,在thread沒有休眠的情況下,因為ViewRootImp在activity的onresume方法中創建,在ViewRootImp方法中判斷當前線程是否為主線程,oncreate在onresume之前執行,所以這種情況下,可以進行更新ui操作。
2018-01-28