这会使当前的 UI 线程进入休眠状态吗?
try
{
Thread.sleep(20);
onProgressUpdate(i);
} catch (InterruptedException e) {
e.printStackTrace();
}
这会使当前的 UI 线程进入休眠状态吗?
try
{
Thread.sleep(20);
onProgressUpdate(i);
} catch (InterruptedException e) {
e.printStackTrace();
}
仅当从 UI 线程调用时。
如果你在 ui 线程上调用 sleep 它会阻塞 ui 线程。不要在 ui 线程上调用 sleep。你不应该阻塞 ui 线程。
http://developer.android.com/reference/java/lang/Thread.html
http://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html
您将获得 ANR
如果您实现Thread
or HandlerThread
,请确保您的 UI 线程在等待工作线程完成时不会阻塞 - 不要调用Thread.wait()
or Thread.sleep()
。
http://developer.android.com/training/articles/perf-anr.html
另请查看如何避免 ANR 下的主题
Thread.sleep(time)
将导致发送此消息的线程在给定的时间间隔内休眠。所以如果你在 UI 线程中调用它,它会影响 UI 线程。就 android 而言,不建议以任何方式阻塞 UI 线程,否则会导致 ANR - 应用程序无响应。
你可以参考这个
好吧,语言中的任何静态方法都可以在对象引用而不是类上调用。但这不会改变功能: Thread.sleep() 是一个静态方法,可以让当前线程进入睡眠状态。