@AlimNinja
Android Developer

Как добавить CountDownTimer в RecyclerView элементы?

Мне нужно показывать CountDown в каждом элементе. Вот как я это сейчас делаю
@Override
    public void onBindViewHolder(final MyViewHolder holder, int position) {
        final PromosGS promos = promos_List.get(position);
         
        CountDownTimer timer = new CountDownTimer(total_millis, 1000) {
                @Override
                public void onTick(long millisUntilFinished) {
                    long days = TimeUnit.MILLISECONDS.toDays(millisUntilFinished);
                    millisUntilFinished -= TimeUnit.DAYS.toMillis(days);

                    long hours = TimeUnit.MILLISECONDS.toHours(millisUntilFinished);
                    millisUntilFinished -= TimeUnit.HOURS.toMillis(hours);

                    long minutes = TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished);
                    millisUntilFinished -= TimeUnit.MINUTES.toMillis(minutes);

                    long seconds = TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished);
                    holder.promoDate.setText(days + "д" + " " + hours + "ч" + " " + minutes + "м" + " " + seconds + "с");
                }

                @Override
                public void onFinish() {
                    holder.promoDate.setText("Завершен");
                }
            };
}

Все показывает нормально, но при обновлении или "onPause", timer не останавливается и в каждом элементе оно удваивается (это только в логе видно).
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
@onepavel
Консультация и разработка мобильных приложений
а почему таймер должен остановиться, его кто-то останавливает?
и я не уверен что СountDownTimer использует пул потоков, полагаю что запускает при создании новый поток. на твоем месте я завел бы один handler , который тикал бы и пробегал только по видимым элементам списка и у них обновлял бы необходимые данные.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы