count down timer的GrepCode显示它使用了一个处理程序。使用处理程序有什么特别的原因吗?因为处理程序通常在我们使用线程进行一些用户交互时使用。但是这里没有我在倒计时计时器中看到的线程。此外,在UI线程中使用倒计时计时器时,它本身也可以工作。
发布于 2013-10-15 02:03:53
,因为处理程序通常在我们使用线程进行一些用户交互时使用。
是真的。然而,“一般”!=“总是”。
碰巧Handler有一些用于计时的有用方法,比如postDelayed()和sendMessageDelayed(),CountDownTimer利用了它们。您自己也可以使用这些工具。它们很好而且轻量级,因为,正如您所注意到的,我们不需要像Timer和TimerTask那样的单独线程。
和倒计时计时器在UI线程中使用时也会自动工作。
它需要一个连接了Looper的线程才能使用Handler。CountDownTimer可能通常在主应用程序线程上使用,如果不在主应用程序线程上使用,则在一些单独的HandlerThread上使用。
发布于 2013-10-15 01:59:14
处理程序用于在倒计时计时器的生命周期中执行某些任务。
假设您正在实现一个秒表,并且希望UI每秒更改一次以显示倒计时,onTick()处理程序可以执行此操作。假设您必须在倒计时计时器结束工作时关闭UI,将代码放入onfinish()处理程序方法中。
发布于 2013-10-15 02:02:59
您不仅可以使用handler在线程之间进行通信。处理程序能够在定义的时间之后执行一些代码(postDelayed函数)。在android操作系统中,Handler是首选的工具(而不是java计时器),以防您需要在一段时间间隔后执行一些代码。在倒计时定时器中,处理程序用于在一秒间隔内调整代码。
https://stackoverflow.com/questions/19366184
复制相似问题