我一直在使用倒数计时器,它表现完美。现在我想实现相反的(像秒表这样的东西),其中时间每秒更新一次屏幕,它会一直增加直到我停止。
有没有一种方法(类似于简单性)可以完成类似Countdowntimer的工作?我知道我可以使用Timer和Timertask但是这会创建新线程并且我读到它不可靠(或推荐)。
谢谢
答案 0 :(得分:1)
看起来你需要一个Chronometer对象。
通过设置tick listener,您每秒钟都会得到一个勾号(不幸的是,这是可用的最低精度,但从问题看来它足以满足您的需求)。
答案 1 :(得分:1)
如果将以下类添加到项目中,则可以像使用CountDownTimer类一样使用它:
public abstract class Stopwatch extends Thread {
int tickFreq;
public Stopwatch(int tickFreq) {
this.tickFreq = tickFreq;
}
abstract void onTick();
@Override
public void run() {
onTick();
try {
Thread.sleep(tickFreq);
}
catch (InterruptedException e) {
e.printStackTrace();
}
super.run();
}
}
要使用它,你会写:
new Stopwatch(1000){
@Override
void onTick() {
// Do whatever you want to do in here
}
}.start();
传递给构造函数(1000)的参数是它应该调用onTick()
的频率。在这种情况下,它每1000毫秒,即每1秒。