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