Проблема с вашим кодом заключается в том, что каждый раз, когда ViewHolder
связывается, а затем не связывается с RecyclerView
, CountDownTimer
запускается снова с нуля, если ViewHolder
не перерабатывается, и в этом случае их очень мало используя RecyclerView
.
Что вам нужно сделать, это удалить ассоциацию Timer
из ViewHolder
и присоединить ее к списку адаптеров. Таким образом, вы можете отслеживать, сколько таймера прошло в каждом элементе в отдельности.
Вы можете использовать onViewAttachedToWindow(VH holder)
и onViewDetachedFromWindow(VH holder)
в RecyclerView.Adapter
, чтобы запустить или остановить / приостановить Timer
, а затем вы можете использовать getAdapterPosition()
для обновления списка адаптеров.