在我的代码中,我有一个在顶部运行的计时器,其值为System.currentTimeMillis()/1000.0
。当游戏开始时,名为tStart
的值设置为System.currentTimeMillis
,当游戏结束时,名为tEnd
的值将设置为System.currentTimeMillis()
。当游戏结束时,时间值从System.currentTimeMillis()
更改为tEnd - tStart
,但不是保持一个值,而是保持计数。我该如何阻止它?
答案 0 :(得分:0)
您无法停止系统时钟。 你可以找到能够做你想做的第三方秒表课程。
喜欢Apache,其中包含org.apache.commons.lang.time.StopWatch
更一般地说,你需要将你的tStart和tEnd保存到变量中,如果你需要再次启动计时器并将前一圈与新一圈联系起来,只需找到偏移(tStart2 - tEnd)
答案 1 :(得分:0)
currentTimeMillis以毫秒为单位显示当前时间。你不能让它停下来,只读它。 你能展示你的代码吗?看起来这应该仍然有效。
答案 2 :(得分:0)
我想,你应该试着解释一下,你到底想要什么时候收到。 为了最简单的目的,您可以使用这个简单的秒表实现(并最终通过所需的功能扩展它的功能):
public class Stopwatch {
private long startTime;
private long endTime;
private boolean running;
public Stopwatch(){
}
public void start(){
this.startTime = System.nanoTime();
running = true;
}
public void stop(){
this.endTime = System.nanoTime();
running = false;
}
public long getElapsedTime(){
return (this.running ? System.nanoTime() : this.endTime) - this.startTime;
}
public boolean isRunning(){
return this.running;
}
public void reset(){
this.startTime = 0L;
this.endTime = 0L;
}
}