3

我的代码从不进入 onChronometerTick 方法。我做错了什么?我需要以某种方式设置滴答时间吗?我想不出办法做到这一点。

elapsedTimer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer chronometer) {
        countUp[0] = (SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000;
        elapsedTimeDynamic.setText("" + countUp);
    }
});
elapsedTimer.start();
4

1 回答 1

7

对于将来在使用计时器/秒表时遇到问题并且无法弄清楚的任何人,我最终报废了计时器并使用了 CountDownTimer,但以这样的方式使用它,它也会计数:

final long startTime = System.currentTimeMillis();
elapsedTimer = new CountDownTimer(activityTime + 1000, 100) {
    @Override
    public void onTick(long l) {

        long elapsedTime = System.currentTimeMillis() - startTime;
        elapsedTime = elapsedTime/1000;
        elapsedTimeTextView.setText(String.format("%02d", (elapsedTime)));
    }

    @Override
    public void onFinish() {

    }
}.start();
于 2013-07-12T14:50:46.493 回答