在Andriod中關於線程一部分中經常會遇到計算時間的操作,這裏面應用較多的是SystemClock類,這個類僅僅是一個獲取系統時間、運行時間的工具類。
這個類有兩個主要的靜態方法uptimeMillis()和 elapsedRealtime().
我們來看一下這兩個函數的實際含義,以下是源碼中的註釋
Returns milliseconds since boot, not counting time spent in deep sleep.
This value may get reset occasionally
native public static long uptimeMillis();
Returns milliseconds since boot, including time spent in sleep.
native public static long elapsedRealtime();
由此可見,uptimeMillis()返回的是系統從啓動到當前處於非休眠期的時間。
elapsedRealTime()返回的是系統從啓動到現在的時間。
值得一提的是,這個類還提供了另外一個方法, public static void sleep(long ms),這個方法就是封裝了Thread.sleep方法,但是不會拋出InterruptedException