Пишу программу в одной из функций которой предусмотрено последовательное выполнение произвольного количества таймеров обратного отчета (к примеру: отсчитал 5 сек, потом 1 минуту, потом 1 минуту 30 сек и т.д.) с отображение обраного отсчета на экране, причем эти интервалы задаются пользователем. С начала реализовал в цикле "for" для каждого отрезка времени с применением CountDownTimer, но экземпляров СountDownTimer создавалось ровно столько, сколько было циклов, и каждый из этих экземпляров вел свой отсчет и пытался отобразить его на экране. В итоге - чихорда цифр.
Сейчас пробую через AsyncTask. Создается экземпляр своего класса реализующего AsyncTask в который в качестве параметра передается ArrayList <> наборов времени (в миллисекундах).
В связи с чем вопрос: необходимо добавить также возможность приостановить таймер с возможностью дальнейшего возобновления его работы кнопками из основного потока, подскажите как правильно это реализовать?
Пробовал через AsyncTask.wait / AsyncTask.notify по нажатию на кнопки, в итоге получал зависание основного потока. Какие будут предложения? Заранее благодарен за помощь)
Остановка и продолжение потока
-
- Сообщения: 16
- Зарегистрирован: 03 авг 2013, 22:55
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Остановка и продолжение потока
Запускать следующий таймер только при завершении предыдущего.varlok3000 писал(а):Какие будут предложения?
И вот еще кое что, в качестве бонуса: viewtopic.php?f=39&t=5446&p=39558&hilit ... ger#p39558
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
-
- Сообщения: 16
- Зарегистрирован: 03 авг 2013, 22:55
Re: Остановка и продолжение потока
Спасибо за бонус) Учту) Но я отказался от использования CountDownTimer, т.к. тот не совсем полностью подходит для моей цели.
И прошу прощения, я наверно не совсем понятно сформулировал вопрос: надо чтобы таймер по нажатию на "паузу" замирал, а потом продолжал отчет. Пробовал через AsyncTask.wait / AsyncTask.notify по нажатию на кнопки, клик на которые обрабатываются в основном потоке ( по клику "пауза"выполняется метод AsyncTask.wait, по клику "продолжить" AsyncTask.notify ) , в итоге получаю зависание основного потока. Что я не так делаю? Как заставить ждать AsyncTask?
И прошу прощения, я наверно не совсем понятно сформулировал вопрос: надо чтобы таймер по нажатию на "паузу" замирал, а потом продолжал отчет. Пробовал через AsyncTask.wait / AsyncTask.notify по нажатию на кнопки, клик на которые обрабатываются в основном потоке ( по клику "пауза"выполняется метод AsyncTask.wait, по клику "продолжить" AsyncTask.notify ) , в итоге получаю зависание основного потока. Что я не так делаю? Как заставить ждать AsyncTask?