2017-04-17 34 views
0

當試圖顯示我的程序運行時間後,單擊按鈕即時接收非常高的值「119660898」。如果我等待3秒鐘,然後重新按下按鈕,總計將按預期上升大約3秒鐘。當通過按鈕將SystemClock.elapsedRealtime顯示到文本視圖中時,我得到一個非常大的值

任何人都可以解釋爲什麼初始值如此之高嗎? 下面是我在按鈕中使用的代碼。

 FinalTime = SystemClock.elapsedRealtime(); 

     TextView text = (TextView) findViewById(R.id.textView1); 
     text.setText("n " + FinalTime); 

回答

2

當試圖顯示我的程序的運行時間,點擊按鈕IM接收到非常高的值之後[...]任何人都可以解釋爲什麼初始值是如此之高?

因爲它不是您的程序已用時間。 從docs

elapsedRealtime()和elapsedRealtimeNanos()回報,因爲系統引導,並且包括深度睡眠的時間。這個時鐘保證是單調的,並且即使CPU處於省電模式時也會繼續保持打勾,所以推薦使用通用間隔時鐘。

如果您想了解所經過的時間,因爲你的應用程序啓動後,您需要保存SystemClock.elapsedRealtime()應用程序啓動時,之後計算的增量。

+0

好吧,我現在明白了,非常感謝。 –

相關問題