概览
Timer是flutter自带的官方延时器工具,本篇研究一下Timer的用法。
重要属性
timer.isActive
某个timer是否处于激活状态
主要用法
引用
import 'dart:async';
延时
Timer(Duration,handleback)
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
...
}
定时循环
Timer.periodic(Duration,handleback)
const timeInterval = const Duration(seconds: 3);
_timer = Timer.periodic(timeInterval , (timer){
// 循环一定要记得设置取消条件,手动取消
if(someCondition is true){
_timer.cancel();
}
});
@override
void dispose() {
// 组件销毁时判断Timer是否仍然处于激活状态,是则取消
if(_timer.isActive){
_timer.cancel();
}
super.dispose();
}
取消定时器
timer.cancel()