SystemClock.sleep(long ms)与Thread.sleep(long millis)分析

废话不多说,先分析:Thread.sleep(long millis),请看参考下图:


SystemClock.sleep(long ms)与Thread.sleep(long millis)分析_第1张图片


Thread.sleep(long millis) 会调用 public static void sleep(long millis, int nanos)方法,到此我们详细分析 sleep(long millis, int nanos)此方法,此方法中我们看得点方地方,请参考第二图中,红色方框中的代码,可以发现 可能 会抛 InterruptedException,

这就会导致出现:程序丧失及时取消活动或关闭能力


Thread.sleep(long millis)调用也会根据CPU的使用情况最终决定的,如果CPU比较繁忙时,可能会导致延后几秒都是有可能


SystemClock.sleep(long ms)方法:

SystemClock.sleep(long ms)与Thread.sleep(long millis)分析_第2张图片

会发现在SystemClock.sleep(long ms)会调用Thread.sleep(long millis),但是唯一的区别就是捕获异常然后并不做其他有效处理(具体搞了什么,不清楚),但这就不会导致程序中断异常





你可能感兴趣的:(android)