簡體   English   中英

暫停Java GUI中的執行

[英]Pause execution in Java GUI

我正在為Android(用Java編寫)編寫測驗程序。 當用戶回答問題時(單擊按鈕),我想在屏幕上閃爍一條消息,指出它們是否正確,然后暫停5秒鍾,然后繼續下一個問題。

但是,單擊一個應答按鈕時,程序將暫停,但不會顯示正確/錯誤消息。 僅在睡眠方法完成后才會顯示該消息。

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

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

作為獎勵,我希望在暫停期間禁用應答按鈕。

您將需要一個AsyncTask Google 在這里向您介紹了它。

當您在主Activity上執行Thread.sleep()時,您正在使應用程序進入睡眠狀態。 AsyncTask將允許您暫停5秒鍾,也許會顯示一個In Progress進度條,然后從那里開始,而不會凍結屏幕。

Imo AsyncTask在此用例中太多了。

不要睡覺 而是設置您的正確/錯誤消息,然后執行以下操作:

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

使用處理程序 :您可以發送具有5000毫秒延遲的消息,禁用按鈕,當消息到達時,您可以重新啟用按鈕。 有關更多信息,請參見http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html

您應該考慮為此使用計時器。 我認為使用線程對此不明智。 使用計時器轉到下一個問題將起作用。

這里看看計時器

希望這可以幫助。

免責聲明:我只在Java中使用計時器來執行類似的操作,但是我確定它可以在Android中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM