Класс Timer
Класс Timer позволяет запускать код один
раз или периодически через заданный промежуток
времени. В первом параметре указывается
длительность задержки в виде объекта Duration,
во втором - функция обратного вызова, которая
сработает по истечении времени. Для создания
периодического таймера используется
именованный конструктор Timer.periodic.
Синтаксис
Timer(Duration duration, void Function() callback)
Timer.periodic(Duration duration, void Function(Timer) callback)
Пример
Давайте запустим таймер, который сработает один раз через одну секунду:
import 'dart:async';
void main()
{
Timer(Duration(seconds: 1), () {
print('done');
});
}
Результат выполнения кода:
"done"
Пример
Давайте создадим периодический таймер, который будет срабатывать каждую секунду, и остановим его после третьего срабатывания:
import 'dart:async';
void main()
{
int count = 0;
Timer timer = Timer.periodic(Duration(seconds: 1), (Timer t) {
count++;
print(count);
if (count == 3) {
t.cancel();
}
});
}
Результат выполнения кода:
1
2
3
Пример
Давайте проверим, активен ли таймер,
с помощью свойства isActive:
import 'dart:async';
void main()
{
Timer timer = Timer(Duration(seconds: 1), () {
print('done');
});
print(timer.isActive);
timer.cancel();
print(timer.isActive);
}
Результат выполнения кода:
true
false