如何在Java中制作倒数计时器?

时间:2014-09-08 12:01:08

标签: java android

我在Java上看了倒计时器上的TheNewBostons Video,但他刚刚展示了如何显示它们。

我想知道如何让他们工作并实际倒计时。那么我怎样才能得到一个以5开头的计时器并向下计数到0然后在0处做一些事情然后再做一些事情再次启动计数器并继续重复它?

3 个答案:

答案 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分钟

CounterClass(180000,1000);中的1000表示下一个刻度之间的间隔

并且持续5秒使用5000而不是1800000

启动计时器

  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);  

          }  
     }  
}

答案 1 :(得分:0)

每个CountDownTimer都有或者应该有一个onFinish()方法,这里你可以在计时器结束时开始新的。

例如:

public void onFinish(){

   textView.setText("Time is over");

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


}

使用其他答案中的计时器。这应该回答你问题的第2部分。

顺便说一下。 Google为Android CountDownTimers提供了超级好的例子。如果你想搜索它。

答案 2 :(得分:-1)

为什么不简单地尝试使用带减量的for循环。这将更容易启动