start method
void
start({
- required String id,
- required Duration interval,
- required VoidCallback onTick,
- bool restartIfExists = true,
启动一个新的轮询任务
参数:
id任务唯一ID,字符串interval间隔时间,DurationonTick到达轮询时刻时执行的回调,VoidCallbackrestartIfExists如果ID已存在,是否重启任务(默认true,否则忽略新任务)
返回结果
无返回值。
用法示例
// 启动一个5秒轮询任务
PollingTask().start(
id: 'taskA',
interval: Duration(seconds: 5),
onTick: () {
print('A polling tick');
},
);
// 启动一个10秒轮询任务,且若已存在则不重启
PollingTask().start(
id: 'taskB',
interval: Duration(seconds: 10),
onTick: () => print('B tick!'),
restartIfExists: false,
);
Implementation
void start({
required String id,
required Duration interval,
required VoidCallback onTick,
bool restartIfExists = true,
}) {
if (_tasks.containsKey(id)) {
if (!restartIfExists) return;
stop(id);
}
_tasks[id] = Timer.periodic(interval, (_) {
onTick();
});
}