2015-10-18 30 views
1

我正在用Java編寫一個Android應用程序,並希望將變量timeHeldDown設置爲用戶按住我們應用程序上的按鈕的時間。經過一段時間後,應該爲用戶彈出一個幫助菜單。測量用戶在Java中執行某些操作的時間的最佳方法是什麼?

我環顧四周發現了Java.util中的Timer和TimerTask類。其中的一個比其他人使用的更好,還是完全有另一個類更好?

System.currentTimeMillis();可能會奏效。

+2

「更好」,將進入 「意見根據」 領土,這因此不會做。但是,如果你可以將這個改寫爲「有什麼區別」,或者可能是每個的優點,那麼這可能是可以回答的。 – Teepeemm

+0

由於這只是測量簡單動作,currentTimeInMillis()似乎是準確的。換句話說:避免火箭科學;去爲你工作的最簡單的事情。 – GhostCat

+0

仔細查看javadocs - Timer和TimerTask不是替代品。它們是任務調度的兩個組成部分。不,這不是你所需要的。你可以例如擴展android.widget.Button覆蓋onKeyDown/onKeyUp方法並計算這些回調的時間差異 – AJG

回答

2

Timer和TimerTask是不定時的庫,它們實際上是進行任務調度和運行在後臺等特定任務..

的一種方法是使用當前系統時間,雖然不是一個好辦法要做到這一點,這是最簡單的,我想聲明全局變量timeEnd /啓動和最後一次類似以下內容:

public double timeHeldDown; 
public long timeStart; 
public long timeEnd; 

//OnPress 
timeStart = System.currentTimeMillis() 

//OnDepress 
timeEnd = System.currentTimeMillis(); 
timeHeldDown = (timeEnd - timeStart)/1000; 
0

要添加到康納·特納給出了答案,在相同的代碼你可以使用System.nanoTime()更精確。

相關問題