【问题标题】:Android Chronometer starts and stops but carries on counting when stoppedAndroid Chronometer 启动和停止,但停​​止时继续计数
【发布时间】:2015-03-07 16:54:06
【问题描述】:

我创建了一个应用,它有一个切换按钮来启动和停止 Chronometer,比如秒表。当您第一次按下切换按钮(执行.start())时,计时器将开始计数,当您再次按下按钮(执行.stop())时,计时器将出现在屏幕上以停止计数,但此时再次启动它表明它实际上仍在后台计数,并在屏幕上显示时间,就好像它从未停止过一样

代码:

tglStartStop.setOnCheckedChangeListener(new OnCheckedChangeListener(){

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            if (tglStartStop.isChecked()) {

                chronStopwatch.start();
            }

            else {

                chronStopwatch.stop();
            }

        }

    });

【问题讨论】:

  • 只是猜测,但您似乎应该在致电 start() 之前立即致电 setBase(...)。原因是start()stop() 不会改变最初由setBase(...) 方法设置的'base' 时间。换句话说,Chronometer 在停止后实际上并没有继续计数,但如果它停止/重新启动,则计数将相对于原始基准时间。

标签: android timer stopwatch chronometer


【解决方案1】:

在“chronStopwatch.start();”之前添加这一行

chronStopwatch.setBase(SystemClock.elapsedRealtime());

【讨论】:

  • 这不是我在对 OP 问题的评论中建议的吗?
  • @Squonk 好吧,您刚刚很好地解释了与 Giridharan 提供的工作解决方案完美互补的理论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多