A count-down timer that can be configured to fire once or repeatedly.
定时器支持单次或周期性执行,定时执行回调方法。
单次执行
const timeout = const Duration(seconds: 3);
const ms = const Duration(milliseconds: 1);
startTimeout([int milliseconds]) {
var duration = milliseconds == null ? timeout : ms * milliseconds;
return new Timer(duration, handleTimeout);
}
...
void handleTimeout() { // callback function
...
}
周期性执行
确切的回调时间取决于基础计时器实现。 在周期时间* n 内将进行不超过n次回调,但两次连续回调之间的时间可以比持续时间更短和更长,取决于底层实现。
Timer.periodic(Duration(milliseconds: 500), (timer) {
if (timer.tick == 5) {
timer.cancel();
print("finish");
}
print("tick ${timer.tick}, timer isActive ${timer.isActive}");
});
print("start");
执行结果
start
tick 1, timer isActive true
tick 2, timer isActive true
tick 3, timer isActive true
tick 4, timer isActive true
finish
tick 5, timer isActive false
简单的异步,尽快执行
Timer.run((){
print("run");
});
print("start");