Я просматриваю документы Секундомер и уверен, что у них нет способа запустить секундомер с начальным значением.
Я разрабатываю приложение что требует измерения прошедшего времени. Таким образом, секундомер становится здесь очевидным выбором. Однако есть вариант использования, когда пользователи приложения могут случайно закрыть приложение при очистке фоновых приложений.
Поскольку запуск кода дротика без головы в фоновом режиме сейчас довольно расплывчатый, я считаю Лучше всего отслеживать время и временной интервал, если он есть, при возобновлении работы приложения после случайного закрытия. Отдельный объект данных, подобный следующему, может отслеживать время и то, работает ли секундомер ...
class StopwatchTracker{
final stopwatch;
final lastUpdated;
final isRunning;
final systemTime;
StopwatchTracker({this.stopwatch, this.lastUpdated, this.isRunning, this.systemTime});
}
С этим у меня есть объект, который имеет данные о времени lastUpdated
с секундомера. Сравните это с systemTime
, которое будет текущим системным временем устройства. Теперь мы можем увидеть, есть ли разрыв между временем lastUpdated
и временем systemTime
. Если есть промежуток, секундомер должен «перескочить» на время на «промежутки».
Этот StopwatchTracker
объект будет инициализирован только при запуске / возобновлении приложения и каждые несколько секунд будет обновляться время lastUpdated
. Я думаю, что logi c есть, но, как я уже упоминал, класс Stopwatch в dart не имеет метода инициализации его начальным значением.
Мне интересно, могу ли я расширить класс Stopwatch для размещения метода для этого. Или второй вариант - обновить сам ellapsedMillis
или добавить gap in mills
к ellapsedMillis
, а затем показать результат на экране.
Будем рады услышать от вас, ребята, по этому поводу!