Android中的时间:currentTimeMillis,uptimeMillis,elapsedRealtime

System.currentTimeMillis()  系统时间,也就是日期时间,可以被系统设置修改,然后值就会发生跳变。

SystemClock.uptimeMillis();//Returns milliseconds since boot, not counting time spent in deep sleep.  自开机后,经过的时间,不包括深度睡眠的时间

SystemClock.elapsedRealtime();//Returns milliseconds since boot, including time spent in sleep 自开机后,经过的时间,包括深度睡眠的时间

SystemClock.currentThreadTimeMillis();//Returns milliseconds running in the current thread. 在当前线程中已运行的时间  

SystemClock.sleep(100); // 类似Thread.sleep(100);但是该方法会忽略InterruptedException  

System.currentTimeMillis()不适合计算时间间隔,

now = System.currentTimeMillis()

//do something...

duration = System.currentTimeMillis() -now;

如果在do something的时候,改变了系统时间,那么 获取duration就不准了。通常在比较小的时间里,(毫秒级,秒级)一般不会有什么问题,系统时间可能不会改变。但是如果时间很长的话,那就保证不了了

uptimeMillis由于不计算睡眠时间,所以非常适合做一些特殊的时间间隔计算

elapsedRealtime 包括睡眠时间,适用于任何情况下的时间间隔计算


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值