是否有可能重复一个coundown计时器?

omn*_*ius 5 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();
Run Code Online (Sandbox Code Playgroud)

我的问题是没有"重启"功能,我想无限地重新开始我的倒计时

Aad*_*ada 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();
Run Code Online (Sandbox Code Playgroud)


小智 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();
Run Code Online (Sandbox Code Playgroud)

现在,您可以随时通过以下方式重新启动它:

timer.start();
Run Code Online (Sandbox Code Playgroud)

并停止它:

timer.cancel();
Run Code Online (Sandbox Code Playgroud)