Java Android-Thread.sleep删除显示的文本
我正在编写一个教简单数学的Android应用程序。当用户输入正确答案并按下按钮时,将显示一条消息,指示其是否正确。当答案正确时,我希望消息显示几秒钟,然后重新加载活动 此代码正确显示以下消息:Java Android-Thread.sleep删除显示的文本,java,android,textview,sleep,Java,Android,Textview,Sleep,我正在编写一个教简单数学的Android应用程序。当用户输入正确答案并按下按钮时,将显示一条消息,指示其是否正确。当答案正确时,我希望消息显示几秒钟,然后重新加载活动 此代码正确显示以下消息: if (answer == userAnswer){ resultsDisplay.setText(correctResponses[new Random.nextInt(correctResponses.length)]); } else if (answer !=
if (answer == userAnswer){
resultsDisplay.setText(correctResponses[new
Random.nextInt(correctResponses.length)]);
}
else if (answer != userAnswer){
resultsDisplay.setText(incorrectResponses[new
Random().nextInt(incorrectResponses.length)]);
}
当我添加Thread.sleep时,resultsDisplay的文本要么从未设置,要么设置并删除得太快,以至于我看不到它发生。loadActivity()是我用来抽象onCreate方法的一个方法,它适用于其他任何情况,因此这不是问题所在。线程在调用loadActivity之前会休眠,我只希望resultsDisplay文本在休眠期间显示:
if (answer == userAnswer){
resultsDisplay.setText(correctResponses[new
Random.nextInt(correctResponses.length)]);
try {
Thread.sleep(5000);
loadActivity(operand);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (answer != userAnswer){
resultsDisplay.setText(incorrectResponses[new
Random().nextInt(incorrectResponses.length)]);
}
在AsyncTask中调用sleep()
,因为当前正在休眠UI线程,这不好
异步任务的蓝图应该如下所示:
class YourAsync extends AsyncTask{
onPreExecute(){
// show message here
}
doInBackground(){
// sleep here
}
onPostExecute(){
// remove/reset message (whatever your requirement is )
// loadActivity
}
}
很好的解决方案。非常感谢。最终,我和一个处理者一起去了,这在第一个答案中找到。它只是减少了代码密集度,我的目标是让这个应用程序尽可能简单。