求助:Dart中使用定时器每隔几秒执行函数失败(附代码)
问题原因与解决方法
你的代码里用的是一次性Timer,它只会在指定延迟后执行一次回调,不会重复触发。要实现每隔几秒执行函数的效果,需要用周期性定时器Timer.periodic。
修正后的代码
void main() { runApp(const MyApp()); // 启动周期性定时器,每隔5秒执行一次 startPeriodicTimer(5 * 1000); } Timer startPeriodicTimer([int milliseconds = 10000]) => Timer.periodic(Duration(milliseconds: milliseconds), (timer) { handleTimeout(); // 如果需要在某个条件下停止定时器,可以调用 timer.cancel(); }); void handleTimeout() { print("running *****************"); }
关键说明
Timer.periodic会按照设定的时间间隔重复执行回调函数,直到你调用timer.cancel()手动停止它- 注意如果你的定时器需要和Flutter的UI生命周期绑定(比如页面销毁时停止),要记得在合适的时机取消定时器,避免内存泄漏
内容的提问来源于stack exchange,提问作者Loftie Fourie
相关产品推荐
相关产品推荐

