如何在Android上暂停handler.postDelayed()定时器

我怎样才能暂停handler.postDelayed()定时器使用一个button。 所以当我再次点击相同的button时,应该继续handler.postDelayed()计时器。

 handler.postDelayed(counterz, 60); 

Solutions Collecting From Web of "如何在Android上暂停handler.postDelayed()定时器"

Handler没有一个计时器来调整。 您正在发布到线程的事件队列,其中还有很多其他的东西在运行。

您可以取消发布的Runnable的:

 handler.removeCallbacks(counterz); 

并重新发布,恢复。

处理程序没有pause方法。 您需要取消并再次运行。

http://developer.android.com/reference/android/os/Handler.html#removeCallbacks(java.lang.Runnable)

public final void removeCallbacks (Runnable r)

删除消息队列中的所有待处理的Runnable r的post。

当不需要时,您需要调用m_handler.removeCallbacks(m_handlerTask)来取消运行。 如果您再次需要,则需要再次运行该任务。

  Handler m_handler; Runnable m_handlerTask ; m_handler = new Handler(); m_handlerTask = new Runnable() { @Override public void run() { // do something m_handler.postDelayed(m_handlerTask, 1000); } }; m_handlerTask.run(); // call run 

假设你使用一个计时器。 即使计时器没有暂停方法。