Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击重置按钮时,如何重置计时器?_Android_Timer_Sdk - Fatal编程技术网

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

Android 单击重置按钮时,如何重置计时器?,android,timer,sdk,Android,Timer,Sdk,在编辑我的代码后,我已经这样做了,当点击重置按钮时,它会重新启动计时器,但当另一个计时器运行时,它会重新启动计时器。因此,一次似乎有多个计时器,问题是“如果计时器已经启动,如何重置计时器”如果启动,则停止重置,然后重新启动 b2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { counter = 0;

在编辑我的代码后,我已经这样做了,当点击重置按钮时,它会重新启动计时器,但当另一个计时器运行时,它会重新启动计时器。因此,一次似乎有多个计时器,问题是“如果计时器已经启动,如何重置计时器”如果启动,则停止重置,然后重新启动

  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(); 

        }
    }); 

在活动中编写自己的倒计时,而不是新的倒计时。使其全球化:

     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();

欢迎来到SO OneWay!如果你发布一个特定的问题,你会有更好的机会得到帮助。你陈述了你想要构建什么,但没有具体要求什么。例如,您可能会问:“在倒计时运行一次后,按钮一直处于禁用状态,在倒计时结束后,我需要做什么才能重新启用它?”单击“重置”按钮时,我如何重置计时器?