📜  每 x 秒抖动一次重复动作 - Dart (1)

📅  最后修改于: 2023-12-03 14:55:55.236000             🧑  作者: Mango

每 X 秒抖动一次重复动作 - Dart

在 Dart 中,我们可以使用 Timer 类来实现每隔一定时间执行指定操作的功能。结合这个类,我们就可以实现每隔 X 秒抖动一次重复动作的需求。

实现步骤
  1. 导入 Timer 类

    import 'dart:async';
    
  2. 创建一个 Timer

    Timer timer = Timer.periodic(Duration(seconds: X), (timer) {
      // 在这里执行重复动作
    });
    

    上述代码中,Duration(seconds: X) 表示每 X 秒执行一次回调函数。

  3. 在回调函数中执行重复动作

    Timer timer = Timer.periodic(Duration(seconds: X), (timer) {
      // 在这里执行重复动作
      print('抖动一次');
    });
    

完整代码如下:

import 'dart:async';

void main() {
  const int X = 5;

  Timer timer = Timer.periodic(Duration(seconds: X), (timer) {
    print('抖动一次');
  });

  // 10 秒后停止定时器
  Timer(Duration(seconds: 10), () {
    timer.cancel();
  });
}
结束定时器

如果我们需要在一定时间后停止定时器,可以使用 Timer 类的 cancel() 方法。

Timer timer = Timer.periodic(Duration(seconds: X), (timer) {
  // 在这里执行重复动作
});

// 10 秒后停止定时器
Timer(Duration(seconds: 10), () {
  timer.cancel();
});
注意事项
  • Timer 类的回调函数会在新的隔离区域中执行,因此无法访问外部变量。
  • 如果需要在回调函数中使用外部变量,可以使用闭包。
参考资料