本文链接 http://blog.csdn.net/xiaodongrush/article/details/28613213
参考资料 http://developer.android.com/reference/android/os/SystemClock.html
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。