可以重复倒数计时器吗?

时间:2013-03-12 02:23:55

标签: java android timer

我想知道是否可以无限重复CountDownTimer

我想做一个盲测,当定时器输出时改变歌曲&用另一首歌重新开始。

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.jeu);

    int timeinminutes=1;

    new CountDownTimer(timeinminutes*21000, 1000) 
    {

        TextView jeutimer = (TextView) findViewById(R.id.jeu_timer);

         public void onTick(long millisUntilFinished) 
         {
             long scnds=0;
             scnds=(millisUntilFinished/1000);
             jeutimer.setText( "" + scnds);
         }


         public void onFinish() 
         {

         }
  }.start();

我的问题是没有“重启”功能,我想无限地重启我的倒计时

3 个答案:

答案 0 :(得分:8)

你可以重新启动它 -

        timer =new CountDownTimer(360000,3000) {

        @Override
        public void onTick(long millisUntilFinished) {

            //Some work

        }

        @Override
        public void onFinish() {
            timer.start(); // start it again after it finishes

        }
    }.start();

答案 1 :(得分:2)

只需保存计时器的参考:

CountDownTimer timer;

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.jeu);

    int timeinminutes=1;

    timer = new CountDownTimer(timeinminutes*21000, 1000) 
    {

        TextView jeutimer = (TextView) findViewById(R.id.jeu_timer);

         public void onTick(long millisUntilFinished) 
         {
             long scnds=0;
             scnds=(millisUntilFinished/1000);
             jeutimer.setText( "" + scnds);
         }


         public void onFinish() 
         {

         }
  }.start();

现在,您可以随时重新启动它:

timer.start();

然后停止:

timer.cancel();

答案 2 :(得分:2)

在onFinish()方法中调用“this.start”也可以正常工作