普通的定时器
> 类似于setTimeout , 只执行一次
final timer = Timer(
const Duration(seconds: 3),
() {
//做你想做的
},
);
间隔执行的定时器
> 类似于setInterval, 间隔进行执行
创建一个10秒的计时器
Timer? _timer;
int _time = 10;
bool _isTiming = false;
void _startTime() {
// 如果
if (_isTiming) {
return;
}
_isTiming = true;
// 注意:下面的第一句 timer 其实就是 _timer, 两者是一样的
_timer = Timer.periodic(const Duration(seconds: 1), (timer) { // 这里的timer就是_timer
setState(() {
if (_time > 0) {
_time--;
print(
'11111----${_timer?.tick} -----${timer.tick}---${timer.isActive}',
);
timer.cancel();
} else {
_isTiming = false;
_time = 10;
_timer?.cancel(); // 相当于 timer.cancel()
}
});
});
}