6

我想知道是否可以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();

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

4

3 回答 3

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();
于 2013-07-25T08:33:59.030 回答
3

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

于 2017-01-23T07:35:45.763 回答
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();
于 2013-03-12T02:59:45.080 回答