秒表计时器递增(如倒数计时器)

时间:2014-05-18 00:55:48

标签: android

我一直在使用倒数计时器,它表现完美。现在我想实现相反的(像秒表这样的东西),其中时间每秒更新一次屏幕,它会一直增加直到我停止。

有没有一种方法(类似于简单性)可以完成类似Countdowntimer的工作?我知道我可以使用Timer和Timertask但是这会创建新线程并且我读到它不可靠(或推荐)。

谢谢

2 个答案:

答案 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秒。