免杀工具-二寸照片的尺寸是多少
![timer cancel](/uploads/image/0766.jpg)
2023年4月4日发(作者:xp临时文件夹)
1.关于Timer1.关于Timer
Flutter中的定时器
任务添加在事件队列
Timer异步执⾏
延迟执⾏任务延迟执⾏任务
Timer(Durationduration,voidFunction()callback)
类似于
d
,延迟⼀段时间执⾏任务
duration
延迟多长时间再执⾏任务
timerDelay(){
Timer(constDuration(seconds:5),(){
print('延迟了5秒执⾏任务');
});
print('外部代码');
//flutter:外部代码
//flutter:延迟了5秒执⾏任务
}
()
run
代码块⾥的代码只会异步执⾏⼀次
timerRun(){
((){
print('执⾏任务');
});
print('外部代码');
//flutter:外部代码
//flutter:执⾏任务
}
ic
ic(Durationduration,voidcallback(Timertimer))
周期性的执⾏任务
定时器常⽤的⼀个⼯⼚构造⽅法
timerPeriodic(){
int_count=0;
//每个1秒执⾏⼀次任务
ic(constDuration(seconds:1),(timer){
_count+=1;
print(_count);
});
}
5.当多个事件队列执⾏时,是否会影响Timer的执⾏?
问题的引⼊:iOS中TableView滑动列表会影响Timer的执⾏,只有修改runloop的mode后,定时器才能正常执⾏
经验证发现,当timer在执⾏时,滚动ListView不会影响timer异步任务的执⾏。可以看出Flutter已经对timer做了优化
6.当我们在使⽤定时器的时候,是否需要考虑⼿动释放的问题?
经验证发现,如果定时器在执⾏时,当Widget释放时,会造成内存泄漏,虽然页⾯释放了,但是timer没有被释放掉
此时需要引⼊Widget中的⼀个⽣命周期⽅法,
dispose
在dispose内,如果
_timer!=null&&_timer!.isActive
,执⾏
_
来取消并释放掉timer
@override
voiddispose(){
//TODO:implementdispose
if(_timer!=null&&_timer!.isActive){
_timer!.cancel();
}
e();
}
更多推荐
timer cancel
发布评论