Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-Thread.sleep删除显示的文本_Java_Android_Textview_Sleep - Fatal编程技术网

Java Android-Thread.sleep删除显示的文本

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 !=

我正在编写一个教简单数学的Android应用程序。当用户输入正确答案并按下按钮时,将显示一条消息,指示其是否正确。当答案正确时,我希望消息显示几秒钟,然后重新加载活动

此代码正确显示以下消息:

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
     }
}

很好的解决方案。非常感谢。最终,我和一个处理者一起去了,这在第一个答案中找到。它只是减少了代码密集度,我的目标是让这个应用程序尽可能简单。