衡量用户在Java中执行某些操作的最佳方法是什么?

时间:2015-10-18 01:38:25

标签: java android timer timertask

我正在使用Java创建一个Android应用程序,并希望将变量timeHeldDown设置为用户按住我们应用程序上的按钮的时间。经过一段时间后,应该会为用户弹出一个帮助菜单。

我在Java.util中查找了找到的Timer和TimerTask类。其中一个比其他人更好用,还是完全有另一个类更好?

System.currentTimeMillis的();可能会奏效。

3 个答案:

答案 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()来获得更高的精度。

相关问题