簡體   English   中英

Android倒數計時器Thread.sleep();

[英]Android Countdown Timer Thread.sleep();

我正在嘗試使用倒數計時器創建電路計時器。 當線程處於睡眠狀態時,我希望文本顯示“ Change!”。 並在倒數計時器再次啟動前顯示5秒鍾。 我不確定如何使它工作。 我知道線程正在休眠,因此不會顯示“更改!” 直到5秒鍾后又醒來。 但是我不明白如何按照我希望的方式工作。 誰能幫我解決這個問題?

public void onFinish()
{
    // Text to be displayed when thread is sleeping
    time.setText("Change!");
    try
    {
        Thread.sleep(5000);
    }
    catch (InterruptedException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    if (numberOfCircuits != 15)
    {
        start();
        numberOfCircuits++;
    }
    else
    {
        countDownTimer.cancel();
    }
}

不用讓主線程進入睡眠狀態(您可能會看到一個ANR對話框),而是可以使用一個計時器,該計時器可以將5秒鍾的延遲通知您,並且您可以再次安排CountDownTimer。

public void onFinish()
{
  // Text to be displayed when thread is sleeping
  time.setText("Change!");

  new Timer("Sleeper").schedule(new TimerTask() {

    @Override
    public void run() {
      if (numberOfCircuits != 15)
      {
        start();
        numberOfCircuits++;
      }
      else
      {
        countDownTimer.cancel();
      }
    }

  }, 5000); // 5 sec delay

}

暫無
暫無

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

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