В процессе изучения kotlin и android studio решил сделать, казалось бы, банальную вещь: таймер. Всего-то вот тебе button, вот тебе textView, нажал на кнопку, цикл for запустился и знай себе подставляет новое значение в textView, засыпает на секунду и по новой. Но узнал маленький нюанс: все элементы пользовательского интерфейса отказываются обновляться до завершения onResume (по крайней мере, это то, как это выглядит). И поэтому такой код:
override fun onResume() {
super.onResume()
for(i in 1..10) {
bindingClass.textView.text = i.toString()
Thread.sleep(1000)
}
}
Приводит лишь к тому, что приложение будто зависает на 10 секунд, а потом сразу показывает "10" на экране. Пробовал запустить в отдельной сопрограмме через runBlocking { launch {} } , но результат тот же.
Какой самый оптимальный способ добиться нужного результата? И неужели обновлять пользовательский интерфейс во время работы приложения настолько редкая задача, что в котлине не добавили какой-нибудь заготовленный способ это сделать? По крайней мере, мне не удалось его найти