一、在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.sleepThread.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)方法