在Thread.sleep之前强制屏幕输出

时间:2011-01-31 20:36:35

标签: java android

如果我尝试在Thread.sleep之前进行屏幕输出(Toast或setContentView),则在睡眠之后(或线程中的所有睡眠)都不会显示。这意味着如果我在Thread.sleep之后执行输出,它将覆盖第一个输出。如果我在调用Thread.sleep之前在View上使用forceLayout它没有用。 Android似乎存储了所有输出并在程序结束时显示它们。如果我在PC上运行像直接Java应用程序这样的代码,那就可以正常工作了。

2 个答案:

答案 0 :(得分:2)

您不应该在UI线程上执行sleep(),因为这会阻止整个UI(如您所见)。

如果您希望在一段时间后发生某些事情,可以通过创建Handler并使用其postDelayed()方法发布延迟消息。

答案 1 :(得分:1)

将工作交给Handler。我希望你没有在UI线程上做Thread.sleep,因为这会导致屏幕冻结(可能你的程序被终止为无响应)。