startCountDown method

void startCountDown()

start countdown Timer. 启动倒计时Timer.

Implementation

void startCountDown() {
  if (_isActive || mInterval <= 0 || mTotalTime <= 0) return;
  _isActive = true;
  Duration duration = Duration(milliseconds: mInterval);
  _doCallback(mTotalTime);
  _mTimer = Timer.periodic(duration, (Timer timer) {
    int time = mTotalTime - mInterval;
    mTotalTime = time;
    if (time >= mInterval) {
      _doCallback(time);
    } else if (time == 0) {
      _doCallback(time);
      cancel();
    } else {
      timer.cancel();
      Future.delayed(Duration(milliseconds: time), () {
        mTotalTime = 0;
        _doCallback(0);
        cancel();
      });
    }
  });
}