Java android倒计时停止并启动新的倒计时

Java android倒计时停止并启动新的倒计时,java,android,countdowntimer,Java,Android,Countdowntimer,我正在制作的程序包括两种不同的倒计时 首先,用户必须在时间限制内输入密码并按下按钮。如果用户无法在时间限制之前输入密码,则密码已过期。但是,如果用户能够在时间限制之前正确输入密码,则应启动新计时器 public class MalibuCountDownTimer extends CountDownTimer { public MalibuCountDownTimer(long startTime, long interval) { super(start

我正在制作的程序包括两种不同的倒计时

首先,用户必须在时间限制内输入密码并按下按钮。如果用户无法在时间限制之前输入密码,则密码已过期。但是,如果用户能够在时间限制之前正确输入密码,则应启动新计时器

    public class MalibuCountDownTimer extends CountDownTimer
{
    public MalibuCountDownTimer(long startTime, long interval)
    {
        super(startTime, interval);
    }
    @Override
    public void onFinish()
    {
        if(hasPlanted == false) {
            text.setText("Time's up!");
            mTextView.setText("cya");
            btnEnable(false);
            startB.setEnabled(false);
        }
    }
    @Override
    public void onTick(long millisUntilFinished)
    {
         text.setText(""+String.format("%02d:%02d:%03d",
                    TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)),
                    TimeUnit.MILLISECONDS.toMillis(millisUntilFinished) - TimeUnit.SECONDS.toMillis(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished))
                    ));
        }
}
这是第一个计时器,它工作得很好。但是,当用户输入正确的密码时,我在尝试停止此计时器时遇到问题

我创建了另一类倒计时程序,当用户在时间限制内输入正确的密码时,第二个计时器启动。当第一个计时器结束时,我用一个布尔值来停止它做任何事情,但我不知道如何才能完全停止该计数器

  if(myTimer != null) { 
         myTimer.cancel();
         myTimer = null;
     }
这是为了提前取消计时器。首先检查它是否为null,如果不是,则对其应用cancel方法。让我知道这是否有用


:)

首先,您必须在运行计时器的主类中创建服务并调用该服务,然后调用onReceive方法

BroadcastReceiver br = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            //Here you check the timer is running or not
              timer.cancel();
}
    };

添加countdowntimer.cancel以启动现有的countdowntimer并创建一个新的。