System.currentTimeMillis() uptimeMillis elapsedRealtime 區別

System.currentTimeMillis()  系統時間,也就是日期時間,能夠被系統設置修改,而後值就會發生跳變。url

uptimeMillis 自開機後,通過的時間,不包括深度睡眠的時間.net

elapsedRealtime自開機後,通過的時間,包括深度睡眠的時間blog

 

因此System.currentTimeMillis()不適合計算時間間隔,eg,內存

now = System.currentTimeMillis()io

//do something...sed

duration = System.currentTimeMillis() -now;硬件


若是在do something的時候,改變了系統時間,那麼 獲取duration就不許了。一般在比較小的時間裏,(毫秒級,秒級)通常不會有什麼問題,系統時間可能不會改變。可是若是時間很長的話,那就保證不了了im

 

uptimeMillis因爲不計算睡眠時間,因此很是適合作一些特殊的時間間隔計算時間

elapsedRealtime 包括睡眠時間,適用於任何狀況下的時間間隔計算co

深度睡眠前所有的辦公均可以接着,沒必要重新敞開手續。進入了睡鄉後,電腦將只有內存通電,用以保留辦公情況的數值,而其它硬件則全部斷電,由於這個耗電量十分低。

參考:http://zhidao.baidu.com/link?url=sO3npfaq2eTUXl551mZl-fR-C_iM59cDf3Z8-DFzybrJcHG9h1mty5kZ6RAvNXTaQMWp5f8ZLSG4cYKqJekLZboz8zMLuxKRjogGvLb9mLq

 

 

轉自:http://blog.csdn.net/wutianyin222/article/details/8853958

相關文章
相關標籤/搜索