start method

void start()

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!
      }
    });
  });
}