Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android倒计时线程。sleep();_Java_Android_Timer_Countdowntimer_Thread Sleep - Fatal编程技术网

Java Android倒计时线程。sleep();

Java Android倒计时线程。sleep();,java,android,timer,countdowntimer,thread-sleep,Java,Android,Timer,Countdowntimer,Thread Sleep,我正在尝试使用倒计时创建一个电路计时器。当线程休眠时,我希望文本显示更改!在倒计时计时器再次启动之前,此按钮将显示5秒钟。我不知道如何让它工作。我知道线程正在休眠,因此不会显示更改!直到5秒钟后它再次醒来。但我无法理解如何让它按我希望的方式工作。有人能帮我解决这个问题吗 public void onFinish() { // Text to be displayed when thread is sleeping time.setText("Change!"); try

我正在尝试使用倒计时创建一个电路计时器。当线程休眠时,我希望文本显示更改!在倒计时计时器再次启动之前,此按钮将显示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();
    }
}

你可以使用一个计时器来通知你5秒的时间间隔,你可以再次安排你的倒计时,而不是让主线程休眠

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

}

你不能让主线睡觉。这很糟糕:-/尝试使用android.os.Handler:-您应该解释为什么希望主线程睡眠。可能是相同的功能/效果,无需这样做即可实现。你可能想考虑在5秒后显示一个消失的对话框。@ No我希望主线程从10下降到0。一旦我归零,我希望文本显示更改!持续5秒,然后再次倒数最多15次。