[英]Why does CountDown Timer in Android use a Handler?
倒数计时器的GrepCode显示它使用了处理程序。 使用处理程序是否有任何特定原因? 因为处理程序通常在我们使用线程进行用户交互时使用。 但是这里没有我可以在倒数计时器中看到的线程。 倒数计时器也可以在自身的UI线程中使用。
因为处理程序通常在我们使用线程进行用户交互时使用
真正。 但是,“通常”!=“总是”。
碰巧的是, Handler
具有用于计时目的的有用方法,例如CountDownTimer
利用的postDelayed()
和sendMessageDelayed()
。 您也可以自己使用它们。 它们很轻巧,因为如您所注意到的,我们不需要像Timer
和TimerTask
这样的独立线程。
倒数计时器也可以在自身的UI线程中使用。
它需要一个带有Looper
的线程才能使用Handler
。 CountDownTimer
可能通常在主应用程序线程上使用,如果不是,则在某些单独的HandlerThread
。
处理程序用于在倒数计时器的生命周期内执行某些任务。
假设您要实现一个秒表,并且希望UI每秒更改一次以显示倒数,那么onTick()处理程序可以执行此操作。 假设您必须在倒数计时器完成工作后关闭UI,然后将代码放入onfinish()处理程序方法中。
您不仅可以使用处理程序在线程之间进行通信。 处理程序具有在定义的时间后执行某些代码的能力(postDelayed函数)。 在android OS中,Handler是首选工具(而不是java Timer),以防万一,您需要在时间间隔后执行一些代码。 在倒数计时器中,处理程序用于每隔一秒调整一次代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.