如果我尝试在Thread.sleep之前执行屏幕输出(Toast或setContentView),则在睡眠(或线程中的所有睡眠)之后才显示。这意味着,如果我在Thread.sleep之后执行输出,它将覆盖第一个输出。如果我在调用Thread.sleep之前在View上使用了forceLayout,那就不好了。看来Android会存储所有输出,并在程序末尾显示它们。如果我在PC上将这些代码作为简单的Java应用程序运行,则可以按预期运行。
最佳答案
您不应该在UI线程上执行sleep()
,因为这会阻塞整个UI(如您所注意到的)。
如果希望在一定时间后发生某些事情,可以通过创建Handler
并使用其postDelayed()
方法来发布延迟的消息。