簡體   English   中英

Android-Thread.sleep刪除顯示的文本

[英]Android - Thread.sleep removes displayed text

我正在編程一個教簡單數學的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時,從不設置resultDisplay的文本,或者設置和刪除它們的速度如此之快,以至於我看不到它的發生。 loadActivity()是我用來抽象onCreate方法的一種方法,它在其他所有情況下都可以使用,因此這不是問題。 線程在調用loadActivity之前確實處於睡眠狀態,我只希望resultDisplay文本在該睡眠期間顯示:

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線程,這不好。

您的asynctask的藍圖應如下所示:

class YourAsync extends AsyncTask{

      onPreExecute(){
        // show message here
      }

      doInBackground(){
       // sleep here
      }

      onPostExecute(){
       // remove/reset message (whatever your requirement is )
       // loadActivity
     }
}

暫無
暫無

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

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