取消后重新使用计时器
Reuse a timer after cancelling
我正在开发一个出于某种目的必须使用计时器的应用程序。我需要做的是,当条件满足时设置一个计时器并相应地取消它。然后我可能会再次启动我取消的同一个计时器。请提供解决方案。
创建 CountDownTimer
class 喜欢:
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
// do something of finish timer
}
@Override
public void onTick(long millisUntilFinished) {
// do something on tick of timer
}
}
并且应该创建一个如下所示的 MyTimer 对象:
MyCount timerCount = new MyCount(<TIME_UNTIL_FINISH_MILLISECONDS>, <TIME_OF_EACH_TICK>);
并且可以在任何地方启动计时器:
timerCount.start();
并取消它:
timerCount.cancel();
对于单个计时器 android 设置单个线程。当您取消该计时器时,它的执行线程将正常终止,并且不再有任何任务可以安排在它上面。所以你必须创建一个定时器对象的新实例。
您可以按照下图进行操作。
if(condition == true)
{
timer = new Timer();
timer.schedule(new TimerTask(), delay, span);
}
else{
timer.cancel();
}
我正在开发一个出于某种目的必须使用计时器的应用程序。我需要做的是,当条件满足时设置一个计时器并相应地取消它。然后我可能会再次启动我取消的同一个计时器。请提供解决方案。
创建 CountDownTimer
class 喜欢:
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
// do something of finish timer
}
@Override
public void onTick(long millisUntilFinished) {
// do something on tick of timer
}
}
并且应该创建一个如下所示的 MyTimer 对象:
MyCount timerCount = new MyCount(<TIME_UNTIL_FINISH_MILLISECONDS>, <TIME_OF_EACH_TICK>);
并且可以在任何地方启动计时器:
timerCount.start();
并取消它:
timerCount.cancel();
对于单个计时器 android 设置单个线程。当您取消该计时器时,它的执行线程将正常终止,并且不再有任何任务可以安排在它上面。所以你必须创建一个定时器对象的新实例。 您可以按照下图进行操作。
if(condition == true)
{
timer = new Timer();
timer.schedule(new TimerTask(), delay, span);
}
else{
timer.cancel();
}