在Java GUI中暂停执行

时间:2011-06-23 01:01:32

标签: java android user-interface sleep

我正在为Android编写一个测验程序(用Java编写)。当用户回答问题时(通过点击按钮),我想在屏幕上闪烁一条消息,说明它们是否正确,然后暂停5秒,然后再转到下一个问题。

但是,单击答案按钮时,程序会暂停,但不会显示正确/不正确的消息。只有睡眠方法完成后才会显示该消息。

if (correct)   
    Answer.setText("CORRECT!"); 
else 
    Answer.setText("WRONG!"); 

try { Thread.sleep(5000); } 
catch(InterruptedException e) {}

作为奖励,我希望在暂停期间禁用答案按钮。

4 个答案:

答案 0 :(得分:4)

你需要一个AsyncTask。 Google会为您介绍here

当您在主Activity上使用Thread.sleep()时,您将使应用程序进入休眠状态。 AsyncTask将允许您暂停5秒,可能会显示一个In Progress栏,然后从那里拿起,而不会冻结屏幕。

答案 1 :(得分:3)

Imo AsyncTask对于这个用例来说太过分了。

不要使用睡眠。 而是设置正确/不正确的消息,而不是这样做:

new Handler().postDelayed(new Runnable(){
  public void run()
  {
    goToNextScreen();
  }
}
, 5000);

答案 2 :(得分:1)

使用Handler:您可以发送延迟5000毫秒的消息,禁用按钮,当消息到达时,您可以重新启用按钮。有关详细信息,请参阅http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html

答案 3 :(得分:-1)

你应该考虑使用计时器。我不认为使用线程是明智的。使用计时器进入下一个问题就行了。

查看timers here

希望这有帮助。

免责声明:我只使用Java中的计时器做类似的事情,但我确信它可以在Android中运行。