单击重置按钮时如何重置计时器?

时间:2014-05-26 13:38:55

标签: android timer sdk

编辑完我的代码之后我已经做了这个,它会在单击重置按钮时重新启动计时器,但是当另一个计时器运行时它会重新启动它,因此它看起来好像一次有多个计时器,问题&#34 ;如果计时器已经启动,如何重置计时器"如果已启动,则停止重置然后重新开始。

  b2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                counter = 0;
                tx.setText(Integer.toString(counter));
                b.setEnabled(true);

                new CountDownTimer(30000, 1000) {

                 public void onTick(long millisUntilFinished) {
                     tx2.setText("Time remaining: " + millisUntilFinished / 1000);

                 }

                 public void onFinish() {
                     tx2.setText("Finished!");
                     b.setEnabled(false);

                 }
              }.start(); 

        }
    }); 

1 个答案:

答案 0 :(得分:1)

而不是新的CountDownTimer,在您的活动中编写您自己的一个。让它成为全球:

     public class MyCountDownTimer extends CountDownTimer {
  public MyCountDownTimer(long startTime, long interval) {
   super(startTime, interval);
  }

  @Override
  public void onFinish() {
   //reset button
       tx2.setText("Finished!");
         b.setEnabled(false);
  }

  @Override
  public void onTick(long millisUntilFinished) {
   //do what ever You want
       tx2.setText("Time remaining: " + millisUntilFinished / 1000);
  }
  }

然后在你的活动中:

   MyCountDownTimer timer=null;
   long startTime = 10000;
   long interval = 1000;
在OnCreate()中初始化它:

   timer = new MyCountDownTimer(startTime, interval);

在您需要的地方启动您的计时器:

   timer.start();

需要时取消:

   timer.cancel();

然后重新开始:

    timer = new MyCountDownTimer(startTime, interval);
    timer.start();