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