我创建了一个应用程序,它有一个切换按钮来启动和停止天文钟,就像秒表一样。当您第一次按下切换按钮(执行.start()
)时,计时器将开始计数,然后当您再次按下按钮(执行.stop()
)时,计时器会出现在屏幕上以停止计数,但是当它再次启动时,它会显示它实际上仍是在后台计算和显示,就好像它从来没有停止过
Android天文台启动和停止,但停止时进行计数
代码屏幕上的时间:
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”在停止后实际上并没有继续计数,但如果它停止/重新启动,计数将会相对于原始基准时间。 – Squonk