一、在android中休眠3s钟有2中方法:
1、SystemClock.sleep(3000);
2、Thread.sleep(3000);
二、通过系统源码区别
1、SystemClock.sleep(long ms)源码:
public static void sleep(long ms)
{
long start = uptimeMillis();
long duration = ms;
boolean interrupted = false;
do {
try {
<span style="color:#ff0000;"> Thread.sleep(duration);</span>
}
catch (InterruptedException e) {
interrupted = true;
}
duration = start + ms - uptimeMillis();
} while (duration > 0);
if (interrupted) {
// Important: we don't want to quietly eat an interrupt() event,
// so we make sure to re-interrupt the thread so that the next
// call to Thread.sleep() or Object.wait() will be interrupted.
Thread.currentThread().interrupt();
}
}
有源码可知SystemClock.sleep还是调用 Thread.sleep
Thread.sleep(long time)源码:
public static void sleep(long time) throws InterruptedException {
Thread.sleep(time, 0);
}
public static void sleep(long millis, int nanos) throws InterruptedException {
VMThread.sleep(millis, nanos);
}
最终调用到</span>VMThread类源码,再调用到底层
<pre name="code" class="java"> static native void sleep (long msec, int nsec) throws InterruptedException;
3、所以在android开发者建议使用 Thread.sleep(long time)方法