Java 在线程休眠之前强制屏幕输出

Java 在线程休眠之前强制屏幕输出,java,android,Java,Android,如果我尝试在Thread.sleep之前执行屏幕输出(Toast或setContentView),则在睡眠(或线程中的所有睡眠)之后才会显示。这意味着,如果在Thread.sleep之后执行输出,它将覆盖第一个输出。如果我在调用Thread.sleep之前在视图上创建一个forceLayout,那么它没有任何好处。看起来Android存储了所有的输出,并在程序结束时显示出来。如果我在PC上以简单的Java应用程序的形式运行这样的代码,它就可以正常工作。将任务交给处理程序。我希望您没有在UI线程上

如果我尝试在Thread.sleep之前执行屏幕输出(Toast或setContentView),则在睡眠(或线程中的所有睡眠)之后才会显示。这意味着,如果在Thread.sleep之后执行输出,它将覆盖第一个输出。如果我在调用Thread.sleep之前在视图上创建一个forceLayout,那么它没有任何好处。看起来Android存储了所有的输出,并在程序结束时显示出来。如果我在PC上以简单的Java应用程序的形式运行这样的代码,它就可以正常工作。

将任务交给处理程序。我希望您没有在UI线程上执行Thread.sleep,因为这将始终导致屏幕冻结(可能会导致程序因无响应而终止)。

您不应该在UI线程上执行
sleep()
,因为这将阻塞整个UI(如您所注意的)


如果您希望某件事在一定时间后发生,您可以通过创建
处理程序
并使用其方法发布延迟消息。

谢谢。我想人们必须总是使用postdayed()而不是sleep()。问题是,如果我想要一系列不断变化的延迟时间,对postDelayed()的调用必须嵌套(这有点麻烦),而不是像sleep()那样的简单序列。或者,您可以随着超时的增加多次调用postDelayed()?