Android中的时间:currentTimeMillis,uptimeMillis,elapsed

1. 三种时间的相同点与不同点

    相同点:都是相对时间。
    不同点:比较的基准不同。currentTimeMillis可以被用户通过时钟设置,也可以网络校时,反正是要设置,如果不设置,计算机怎么会知道现在距离1970年1月1号有多长时间。另外两个是从操作系统被引导后开始计算的,只是一个计算深度睡眠时间,另一个不计算。
    System#currentTimeMillis     
    Returns the current time in milliseconds since January 1, 1970 00:00:00.0 UTC.
    android.os.SystemClock#uptimeMillis      
    Returns milliseconds since boot, not counting time spent in deep sleep.
    android.os.SystemClock#elapsedRealtime
    Returns milliseconds since boot, including time spent in sleep.

2. 应用场景

    AlarmManager支持currentTimeMillis和elapsedRealtime这两种方式。
    Thread.sleep(millis),Object.wait(millis),SystemClock.sleep(millis) 和Handler都是使用uptimeMills。

你可能感兴趣的:(Android中的时间:currentTimeMillis,uptimeMillis,elapsed)