Назад к вопросам
Junior — Middle
86
Каким образом обеспечить выполнение операций так, чтобы они не блокировали интерфейс пользователя?
Компании, где спрашивали
Ютека
Ответ от нейросети
sobes.tech AI
Чтобы операции не блокировали интерфейс пользователя в Android, нужно выполнять их в фоновом потоке, а не в основном (UI) потоке. Для этого можно использовать:
- AsyncTask (устаревший, но часто встречающийся в старом коде)
- HandlerThread или Handler
- ExecutorService
- Коррутины Kotlin (современный и рекомендуемый способ)
- RxJava
Например, с помощью корутин можно сделать так:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Долгая операция, например, запрос к сети
fetchData()
}
// Обновление UI с результатом
textView.text = result
}
Таким образом, тяжелая работа выполняется в фоновом потоке (IO), а обновление интерфейса — в главном потоке.