count down timer的GrepCode表明它使用Handler。有沒有使用處理程序的具體原因?因爲處理程序通常在我們使用線程進行某些用戶交互時使用。但是這裏沒有線程可以在倒數計時器中看到。而且倒數計時器也可以在UI線程中自行使用。爲什麼Android中的CountDown Timer使用Handler?
2
A
回答
1
處理程序用於在倒數計時器的生命週期中執行某些任務。假設你正在實現一個秒錶,並且你希望UI每秒改變一次以顯示倒數,onTick()處理程序可以執行此操作。例如,你必須在倒數計時器完成工作時關閉UI,將代碼放入onfinish()處理程序方法中。
1
您可以使用處理程序不僅在線程之間進行通信。 Handler能夠在定義的時間後執行一些代碼(postDelayed函數)。在android操作系統Handler是首選的工具(而不是java定時器)的情況下使用,那麼你需要在時間間隔後執行一些代碼。在倒數計時器中,處理程序用於以一秒爲間隔調用代碼。
3
因爲當我們正在做使用線程
真一些用戶交互處理程序通常使用。但是,「一般」!=「永遠」。
恰巧Handler
有時間用途的有用的方法,如postDelayed()
和sendMessageDelayed()
,其中CountDownTimer
利用。你也可以自己使用這些。它們很好,很輕便,因爲,正如你注意到的那樣,我們不需要單獨的線程,就像Timer
和TimerTask
那樣。
而且倒數計時器的工作原理,當它在自己的UI線程中使用。
它需要一個線程與附加Looper
使用Handler
。 CountDownTimer
大概是通常是在主應用程序線程上使用,如果不是這樣,則在某些單獨的HandlerThread
上。
相關問題
- 1. Android CountDown Timer不會停止
- 2. Android/Java - CountDown Timer不工作
- 3. Android中的CountDown Timer。推送到TextView
- 4. 來自Mysql數據庫的Android CountDown Timer
- 5. 如何在Handler中使用Timer?
- 6. 我應該使用Timer,Handler還是ASyncTask?
- 7. Javascript Countdown Timer with user input
- 8. Javascript Cookie Timeout With Countdown Timer
- 9. 爲什麼Handler,Timer只能運行一次?
- 10. 無法在服務中使用Countdown Timer中的ActivityManager
- 11. 如何在另一個CountDown Timer正在運行時暫停一個CountDown Timer?
- 12. 安裝了CountDown TImer的對話框
- 13. 爲什麼跳過秒? CountDown計時器
- 14. 如何創建一個Event CountDown Timer?
- 15. 爲什麼「新的EventHandler(Handler)」在.Net中?
- 16. 關閉屏幕的Android Timer/Handler/Thread.sleep()無法正常工作
- 17. 在Timer中使用Console.WriteLine爲什麼它會出現?
- 18. Android stop CountDown
- 19. 爲什麼使用Messenger而不是將引用傳遞給Handler?
- 20. 如何在Android的AsynkTask中使用Handler
- 21. 爲什麼countBreak()函數保持更新,而不是JavaScript中的countdown()函數?
- 22. 暫停CountDown計時器Android
- 23. 如何爲Android中的CountDown計時器設置完成活動?
- 24. HANDLER OPEN/READ/CLOSE的用例是什麼?
- 25. 使用Handler在Android中發送消息
- 26. 如何在Android中使用Java Timer?
- 27. 使用Timer(或Handler)在ImageView中更改圖像來創建動畫
- 28. Android:爲什麼使用imagebutton?
- 29. Android:爲什麼使用XMLReader?
- 30. 如何在ParentWindow中關閉PoPupWindow後顯示消息(在CountDown Timer的中間)?