startCountupTimer method
void
startCountupTimer(
- Key key,
- Duration initialDuration, {
- Duration? maxDuration,
- VoidCallback? onFinish,
- TimerController? controller,
- bool isPaused = false,
启动正向计时
Implementation
void startCountupTimer(
Key key,
Duration initialDuration, {
Duration? maxDuration,
VoidCallback? onFinish,
TimerController? controller,
bool isPaused = false,
}) {
final effectiveInitialDuration = initialDuration.isNegative
? Duration.zero
: initialDuration;
final effectiveMaxDuration = maxDuration == null || maxDuration.isNegative
? null
: maxDuration;
final notifier = _notifiers.putIfAbsent(
key,
() => AdvancedValueNotifier(effectiveInitialDuration),
);
_entries[key]?._controller?._detach(_entries[key]!);
final entry = _TimerEntry.countup(
key: key,
initialDuration: effectiveInitialDuration,
maxDuration: effectiveMaxDuration,
notifier: notifier,
onFinish: onFinish,
isPaused: isPaused,
onChanged: _scheduleNextTick,
);
_entries[key] = entry;
controller?._attach(entry);
_ensureLifecycleObserver();
entry.refresh();
_scheduleNextTick();
}