免费自制app软件平台/长沙官网seo技术
我需要找到一种方法来阻止多个定时器的发生。我必须有一个带有可选择的倒数计时器间隔的弹出菜单。我找到了一个适用于创建计时器的解决方案。但是,如果一个人正在进行,并且您从菜单中选择了另一个,他们将一起运行。在Android中停止多个倒计时器定时器
我需要找出要添加的代码,以便当第二个倒计时选项被选中时,第一个倒数计时器停止。
...
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()){
case R.id.countdownMenu1:
CounterClass timer = new CounterClass(10000, 1000);
timer.start();
return true;
case R.id.countdownMenu2:
timer = new CounterClass(15000, 1000);
timer.start();
return true;
default:
return false;
}
}
public class CounterClass extends CountDownTimer {
public CounterClass(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished;
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
System.out.println(hms);
textViewTime.setText(hms);
}
@Override
public void onFinish() {
// textViewTime.setText("Completed.");
System.exit(0);
}
...
从菜单中选择每一次的效果很好,只要你不再尝试再次尝试。然后我显示两个倒数时间,并且首先执行onFinish。
+0
我不明白这个问题。取消方法不适合你?据我所知,你只需要取消当前计时器,如果它目前正在运行。是吗? –
+0
问题是我没有使用单独的取消按钮。我只使用弹出菜单的按钮。如果你从菜单中选择15分钟,它工作正常。如果你再次点击菜单并选择10分钟,现在你有两个计时器试图同时运行。我认为在新车开始前会有一个简单的检查来关闭旧车,但可能不会。在倒数计时器中设定时间很容易。它每次重置。当我尝试做出可选的持续时间时,我遇到了问题。 –
+0
因此,您需要:点击第一个菜单项 - >启动计时器15分钟。之后,如果点击2菜单项 - > 15分钟取消第一个定时器,并启动定时器10分钟。我是对的? –