我正在使用Java创建一个Android应用程序,并希望将变量timeHeldDown设置为用户按住我们应用程序上的按钮的时间。经过一段时间后,应该会为用户弹出一个帮助菜单。
我在Java.util中查找了找到的Timer和TimerTask类。其中一个比其他人更好用,还是完全有另一个类更好?
System.currentTimeMillis的();可能会奏效。
答案 0 :(得分:2)
Timer和TimerTask不是用于计时的库,它们实际上用于任务调度和在后台运行某些任务等。
一种方法是使用当前的系统时间,虽然不是一个很好的方法,但它是最简单的,我会为timeEnd / Start声明全局变量,最后的时间如下所示:
public double timeHeldDown;
public long timeStart;
public long timeEnd;
//OnPress
timeStart = System.currentTimeMillis()
//OnDepress
timeEnd = System.currentTimeMillis();
timeHeldDown = (timeEnd - timeStart) / 1000;
答案 1 :(得分:1)
另一种选择是来自commons-lang的StopWatch类。
https://commons.apache.org/proper/commons-lang/javadocs/api-3.4/index.html
StopWatch stopWatch = new StopWatch();
stopWatch.start();
// do stuff
stopWatch.stop();
long nanos = stopWatch.getNanos(); // time in nanoseconds
long millis = stopWatch.getTime(); // time in millis
答案 2 :(得分:0)
要添加Conner Turner给出的答案,在相同的代码中,您可以使用System.nanoTime()来获得更高的精度。