You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:18:09