System.currentTimeMills()
這個函數取得的毫秒數,是由當前系統的日期和時間決定的。
它能夠經過SystemClock.setCurrentTimeMillis()來改變。
若是須要一個精確的計時器,那麼必定不要用它。
SystemClock.uptimeMillis()
這個時鐘經常用來實現動畫,AnimationUtils.currentAnimationTimeMillis()即是由這個方法實現的。
它表明從系統啓動開始的毫秒數,當系統進入深睡眠時,clock會中止,例如 CPU off、顯示器關閉,設備等待外部輸入等。
它是許多定時器的基礎,如Thread.sleep()、Object.wait()、System.nanoTime()。
假如咱們的Timer在設備休眠的時候不須要繼續走,那麼使用這個函數做爲定時器是合適的。
SystemClock.elapsedRealtime()
這個時鐘及時在CPU處於省電模式下或者深度睡眠的狀況下,依然能正常運行。
所以若是咱們須要一個精確的計時器,那麼就使用這個方法。