如何用Java制作倒计时?

如何用Java制作倒计时?,java,android,Java,Android,我看了NewBoston关于Java倒计时的视频,但他只是演示了如何显示它们 我想知道如何让他们工作,并实际向下计数。那么,我如何得到一个计时器,它从5开始,倒计时到0,然后在0做一些事情,在它做了一些事情之后,再次启动计数器并不断重复它 这是exmaple 创建如下所示的类的对象 final CounterClass timer = new CounterClass(180000,1000); // 1800000 and 1000 are in milli seconds 这里18000

我看了NewBoston关于Java倒计时的视频,但他只是演示了如何显示它们

我想知道如何让他们工作,并实际向下计数。那么,我如何得到一个计时器,它从5开始,倒计时到0,然后在0做一些事情,在它做了一些事情之后,再次启动计数器并不断重复它

这是exmaple

创建如下所示的类的对象

final CounterClass timer = new CounterClass(180000,1000); // 1800000 and 1000 are in milli seconds 
这里180000等于3分钟

180000/1000=180秒,180/60=3分钟

1000英寸<代码>逆程(1800001000)表示下一次勾选之间的间隔

并在5秒钟内使用5000而不是1800000

启动计时器

  timer.start();
   timer.cancel();  
结束计时器

  timer.start();
   timer.cancel();  
这是柜台

     public class CounterClass extends CountDownTimer {  
          public CounterClass(long millisInFuture, long countDownInterval) {  
               super(millisInFuture, countDownInterval);  
          }  
          @Override  // when timer is finished
         public void onFinish() {  
           System.out.println("Completed.");  
         }  
          @Override  // on every tick of the timer
          public void onTick(long millisUntilFinished) {  
                long millis = millisUntilFinished;  
                 String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),  
                     TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),  
                     TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));  
                 System.out.println(hms);  
                 
          }  
     }  
}

每个倒计时都有或应该有一个onFinish()方法,在这里,当计时器结束时,您可以开始一些新的东西

例如:

public void onFinish(){

   textView.setText("Time is over");

   this.start();//this starts the timer again(and again and again...(in the onFinish))


}
使用另一个答案中的计时器。这应该回答你问题的第二部分


顺便说一句,谷歌为Android倒计时系统提供了非常好的例子。如果您想搜索它。

请参考此或可能重复的@Zuhayr Hamayun。请参考我的答案。谢谢,这帮了大忙!。如何检查计时器何时完成或在另一个类中达到0.public void onFinish(){System.out.println(“Completed”);}如果对您有帮助,请接受答案:)使用if语句检查计时器是否达到0,而不调用onFinish()方法如何。如何操作?onFinish函数表示计时器已停止。。因此,此函数将在计时器停止后执行。。你可以在这里实现你想在计时器完成后做的事情。。。所以不需要if-else,因为onFinish()函数是为您准备的:)…但是。。如果您需要它,那么在onTick方法中,您可以通过以下方式实现它。。。如果(小时==0&&分钟==0,秒==0){}else{}。。我希望它能帮助你。