Ответ
Длительная работа на главном потоке (UI-потоке) приведет к ANR (Application Not Responding), так как система Android требует от приложения быстрого отклика на пользовательские действия (обычно в течение 5 секунд). Это вызовет диалоговое окно с предложением закрыть приложение.
Пример плохого кода:
// Выполнение долгой операции на UI-потоке
button.setOnClickListener {
Thread.sleep(10000) // 10 секунд блокировки
textView.text = "Готово!" // ANR!
}
Решение - выносить долгие операции в фоновые потоки:
button.setOnClickListener {
lifecycleScope.launch(Dispatchers.IO) {
delay(10000) // Не блокирует UI
withContext(Dispatchers.Main) {
textView.text = "Готово!"
}
}
}