繁体   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