目前在我的应用程序中,我让用户在点击按钮时创建多个倒数计时器。我希望将每个倒数计时器与一个取消按钮配对,取消按钮允许用户取消倒数计时器。目前我有一个函数,它使用cdt.cancel()取消倒数计时器,其中cdt是countdowntimer var。但是,这只允许我取消之前创建的cdt。有没有什么方法可以取消之前的倒数计时器?
答案 0 :(得分:0)
我会做这样的事情:
private void startNewTimer(List<CountDownTimer> listOfTimers) {
CountDownTimer countDownTimer = new CountDownTimer(1000,1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
}
}.start();
listOfTimers.add(countDownTimer);
}
private boolean cancelTimers(List<CountDownTimer> listOfTimers) {
if(listOfTimers != null && !listOfTimers.isEmpty()) {
for(CountDownTimer cdt : listOfTimers) {
cdt.cancel();
}
listOfTimers = null;
return true;
}
return false;
}
您可能希望将List<CountDownTimer> listOfTimers
创建为全局变量(List<CountDownTimer> listOfTimers = new ArrayList<>()
)
您可以通过按钮startNewTimer(list)
的{{1}}方法和您认为合适的onClick
来调用OnClickListener
。
如果您要取消特定取消,可以通过stopTimers
中的索引引用它,例如:
List