如何在android中使用本例中的Thread.sleep()
我在主线程上有一些示例代码:如何在android中使用本例中的Thread.sleep(),android,thread-sleep,Android,Thread Sleep,我在主线程上有一些示例代码: userButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { simpleMessage.setText("Msg1"); try { Thread.sleep(1000); } catch (Interru
userButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
simpleMessage.setText("Msg1");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
simpleMessage.setText("Msg2");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
simpleMessage.setText("Msg3");
}
});
问题是,它只会在一定时间后将文本更新为“Msg3”。为什么会发生这种情况,以及如何在每次发送信息时更新信息?您是否尝试过增加睡眠时间?可能还是它发生得太快了?“为什么会发生这种情况”--因为您占用了主应用程序线程,阻止它更新屏幕,这是由您的
thread.sleep()
调用提供的。“如何使其在每次消息时更新?”--您需要将控制权交还给主应用程序线程,并安排稍后再次获得控制权以更新您的TextView
。例如,您可以使用postdayed()
和Runnable
: