【问题标题】:Why isn't onChronometerTick being called?为什么不调用 onChronometerTick ?
【发布时间】:2013-07-11 16:13:02
【问题描述】:

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

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

【问题讨论】:

  • 您是否尝试在侦听器之前启动它?
  • 是的,这不会改变任何事情

标签: android chronometer


【解决方案1】:

对于将来在使用计时器作为经过的计时器/秒表时遇到问题并且无法弄清楚的任何人,我最终报废了计时器并使用了 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();

【讨论】:

  • 这是怎么算的?
  • 好吧,我的 textview 似乎正在计数,这就是我的意思。因为它显示的是 currentTime-startTime 的 elapsedTime 变量。
猜你喜欢
  • 2016-07-15
  • 2020-03-28
  • 2019-03-18
  • 2011-05-04
  • 2019-11-04
  • 2016-10-27
  • 2018-05-24
  • 2013-08-12
  • 2022-01-16
相关资源
最近更新 更多