在Java GUI中暂停执行



我正在为Android编写一个测试程序(用Java编写)。当用户回答一个问题(点击按钮)时,我想在屏幕上弹出一条消息,说明他们是否正确,然后停顿5秒,然后继续下一个问题。

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

if (correct)   
    Answer.setText("CORRECT!"); 
else 
    Answer.setText("WRONG!"); 
try { Thread.sleep(5000); } 
catch(InterruptedException e) {}

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

您需要一个AsyncTask。谷歌在这里给你介绍一下。

当您在主活动上执行Thread.sleep()时,您正在使应用程序进入睡眠状态。AsyncTask将允许您暂停5秒钟,可能会显示一个小的"正在进行"栏,然后从那里开始,而不会冻结屏幕。

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

不要利用睡眠。相反,设置正确/不正确的消息,然后这样做:

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

使用处理程序:您可以发送延迟5000毫秒的消息,禁用按钮,当消息到达时,您可以重新启用按钮。看见https://web.archive.org/web/20200810154212/http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html获取更多信息。

您应该研究如何使用计时器。我认为使用线程是不明智的。使用计时器进入下一个问题是可行的。

看看这里的计时器

希望这能有所帮助。

免责声明:我只在Java中使用过计时器来做类似的事情,但我相信它在Android中也能工作。

相关内容

  • 没有找到相关文章

最新更新