Android 如何只运行一个OnClick倒计时?

Android 如何只运行一个OnClick倒计时?,android,onclick,countdowntimer,Android,Onclick,Countdowntimer,我在想办法让onClick侦听器只运行一个倒计时时遇到了麻烦。基本上,我有一个应用程序,有6个按钮,每次你点击其中一个按钮,它就会开始对相应的按钮文本倒计时。但是,我只希望最近的倒计时由OnClick开始,用于运行和更新按钮上的文本的每个按钮 这是我到目前为止的代码。。。这是可行的,但是倒计时开始互相“争斗”,这改变了按钮的文本。是否有一种方法可以使每次注册OnClick时,由先前的按钮单击创建的任何倒计时都被销毁/忽略 oBlue.setOnClickListener(new View.OnC

我在想办法让onClick侦听器只运行一个倒计时时遇到了麻烦。基本上,我有一个应用程序,有6个按钮,每次你点击其中一个按钮,它就会开始对相应的按钮文本倒计时。但是,我只希望最近的倒计时由OnClick开始,用于运行和更新按钮上的文本的每个按钮

这是我到目前为止的代码。。。这是可行的,但是倒计时开始互相“争斗”,这改变了按钮的文本。是否有一种方法可以使每次注册OnClick时,由先前的按钮单击创建的任何倒计时都被销毁/忽略

oBlue.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Button was clicked so start our count down
                CountDownTimer blueTime = new CountDownTimer(30000, 1000) {
                     public void onTick(long millisUntilFinished) {
                         String s = String.valueOf(millisUntilFinished / 1000);
                         oBlue.setText(s);
                     }

                     public void onFinish() {
                         oBlue.setText(String.valueOf(300));
                     }
                  }.start();

用内部类替换计数器变量,这样就不需要每次都创建计数器变量。只要创建一个时间计数器变量,并调用它的开始,如果你想重新启动计数器的每个按钮

Es:


//输入您的代码

您看过倒计时类的API文档了吗?cancel()看起来可以做你想做的事吗?谢谢你的帮助,我觉得没有想到这一点有点傻。有时你太过认真地看待事物,而忽略了显而易见的东西!
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
    super(millisInFuture, countDownInterval);
}