Что было бы самым точным решением для нескольких последовательных таймеров в Java/android? Или, другими словами, что является лучшим вариантом для задержки следующего фрагмента кода до окончания текущего таймера?В Java (android), что является хорошим способом создания точных последовательных таймеров?
Исходная информация, если вопрос неясен: Чтобы практиковать кодирование, я хотел бы создать бесплатное приложение без рекламы, чтобы помочь в практической реализации фридайвинга. Основная идея - иметь несколько таймеров, которые работают друг за другом. Пример:
- 2 минут дыхание до
- задержать дыхание в течение 2 минут
- 2 минуты дыхание до
- задержать дыхание в течение 2 минут + 15 секунд
- 2 минуты дыхание до
- задержите дыхание в течение 2 минут + 15 секунд + 15 секунд и так далее; обычно 8 раундов задерживания дыхания, что приводит к 16 последовательным таймерам
Сначала я думал, что могу использовать класс таймера, но я не знаю, как приостановить код до окончания таймера. Так что все таймеры бегали одновременно. Я читал о CountDownLatch и Handler, но у меня недостаточно опыта, чтобы судить, что было бы лучше для моей цели. Раньше я делал версию python и использовал сон. Он работал нормально, но для более длинных таймеров это было неточно на несколько секунд, что является проблемой.
Другой вариант, я считаю, состоит в том, чтобы использовать обычный таймер, но запускать цикл while до отображаемого текста == 0. Я не знаю, мог ли этот бесконечный цикл сбой приложения, помешать точности таймера или любые другие отрицательные побочные эффекты.
Любая помощь/мысли будут оценены. Благодаря!
Перед отправкой, выполните поиск переполнения стека. Эта тема была рассмотрена много раз. Поиск таймеров, исполнителей, ScheduledExecutorService и Java в реальном времени. –