start method
Starts the timer.
Initially the timer is triggered after delay. After that it is triggered after interval until it is stopped.
See stop
Implementation
void start() {
// Stop previously set timer
stop();
// Exit if interval is not defined
if (_interval == null || _interval! <= 0) return;
// Introducing delay
var delay = max(0, _delay! - _interval!);
_timeout = Timer(Duration(milliseconds: delay), () {
_timeout = null;
// Set a new timer
_timer = Timer.periodic(Duration(milliseconds: _interval!), (Timer tm) {
try {
if (_callback != null) _callback!();
} catch (ex) {
// Ignore or better log!
}
});
});
}