如何创建无限循环

时间:2011-11-26 11:13:47

标签: android loops timer countdowntimer

好的,我需要在倒计时上创建一个无限循环。我的代码是:

public void countdown() {
    if (x != null) {
        x.cancel();
    }

    x = new CountDownTimer(20000, 1000) {
        public void onTick(long millisUntilFinished) {
        }

        public void onFinish() {
            showNotification();
        }
    };
    x.start();
}

x只是一个静态倒计时器变量。问题是我尝试了很多方法来使上面的代码工作,我的意思是当倒计时结束时,它显示该通知,它应该重新开始等等......但我找不到办法做到这一点

7 个答案:

答案 0 :(得分:11)

希望这会对你有所帮助。

public void countdown(){
    if (x != null) {
        x.cancel();
    }
    x = new CountDownTimer(20000, 1000) {
       public void onTick(long millisUntilFinished) {
        }
       public void onFinish() {
           showNotification();
            x.start();
        }
    };
 }

答案 1 :(得分:5)

是完成后重新启动你的计时器:)  像这样:

   x = new CountDownTimer(20000, 1000) {
            public void onTick(long millisUntilFinished) {
            }

            public void onFinish() {
                showNotification();
                start();// here, when your CountDownTimer has finished , we start it again :)
            }
        };
        x.start();

答案 2 :(得分:3)

记录CountDownTimer( millisInFuture, countDownInterval)

  // A not so infinite but close to infinte interval for each second
  CountDownTimer cdt=new CountDownTimer(Long.MAX_VALUE, 1000) { .... }

其中Long.MAX_VALUE = 9223372036854775807毫秒或约2.92亿年(秒或多或少)

它不是无限的,但却非常长。

答案 3 :(得分:3)

创建无限循环的简单方法:

每一个电话方法

new CountDownTimer(1000, 1000) 
   {
        public void onTick(long l) {}
        public void onFinish() 
        {
          //Code hear
          start();
        }
    }.start();

答案 4 :(得分:2)

为什么不使用普通的定时器?它会在指定的时间间隔内重复,直到您调用cancel(),类似于:

public void countdown() { 
    if (x != null) {
        x.cancel();
    }

    x = new Timer("timerName");
    x.schedule(_timerTask, 0, 20000);
}

private static final TimerTask _timerTask = new TimerTask() {
    @Override
    public void run() {
        showNotification();
    }
};

答案 5 :(得分:1)

你可以使用while循环:
while (true) {
// do stuff
}

当它完成了“那些东西”时,它将再次开始,无限!

答案 6 :(得分:1)

让你的计时器正常工作

<countdowntime>.start(); 

onfinish