我在Java上看了倒计时器上的TheNewBostons Video,但他刚刚展示了如何显示它们。
我想知道如何让他们工作并实际倒计时。那么我怎样才能得到一个以5开头的计时器并向下计数到0然后在0处做一些事情然后再做一些事情再次启动计数器并继续重复它?
答案 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循环。这将更容易启动