【发布时间】:2021-11-23 02:49:23
【问题描述】:
所以我创建了一个计时器,我可以通过一个按钮来启动和停止。大多数情况下都可以正常工作,但是如果我向按钮发送垃圾邮件以快速启动和停止它,它似乎会同时启动多个计时器,因此,该函数的触发速度比一秒快得多。无论如何,我是否可以一次将其保留在一个计时器上,或者以某种方式一次取消所有计时器(我对颤振和计时器非常陌生)。
启动计时器:
void startTimer() {
Timer.periodic(Duration(seconds: seconds), (t) {
setState(() {
timer = t;
randomNote = Random().nextInt(6);
randomType = Random().nextInt(6);
});
});
}
停止计时器:
timer?.cancel();
我尝试添加一个 if 语句来检查计时器是否处于活动状态,因此代码如下所示:
void startTimer() {
if (timer?.isActive != true) {
Timer.periodic(Duration(seconds: seconds), (t) {
setState(() {
timer = t;
randomNote = Random().nextInt(6);
randomType = Random().nextInt(6);
})
});
}
}
但没有任何改变。
【问题讨论】: