start method
void
start({
- required String id,
- required Duration interval,
- required VoidCallback onTick,
- bool restartIfExists = true,
启动一个轮询任务
使用示例:
PollingTask().start(
id: 'task1',
interval: Duration(seconds: 5),
onTick: () {
print('Task 1 is running');
},
restartIfExists: true, // 如果任务已存在,是否重启
);
PollingTask().start(
id: 'task2',
interval: Duration(seconds: 10),
onTick: () {
print('Task 2 is running');
},
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();
});
}