A count-down timer that can be configured to fire once or repeatedly.
定時器支持單次或周期性執(zhí)行枢希,定時執(zhí)行回調(diào)方法。
單次執(zhí)行
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
...
}
周期性執(zhí)行
確切的回調(diào)時間取決于基礎(chǔ)計時器實現(xiàn)效拭。 在周期時間* n 內(nèi)將進(jìn)行不超過n次回調(diào)袍啡,但兩次連續(xù)回調(diào)之間的時間可以比持續(xù)時間更短和更長吱韭,取決于底層實現(xià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");
執(zhí)行結(jié)果
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
簡單的異步,盡快執(zhí)行
Timer.run((){
print("run");
});
print("start");