Ответ
В Android разработке основные фреймворки для работы с многопоточностью:
- Thread/Handler/Looper - базовый механизм Android
Thread {
// Фоновая работа
Handler(Looper.getMainLooper()).post {
// Обновление UI
}
}.start()
-
AsyncTask (устарел, не рекомендуется) - упрощал работу с UI потоком
-
RxJava - реактивное программирование с богатыми операторами
Observable.fromCallable { /* фоновая работа */ }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
- Coroutines (рекомендуемый подход) - легковесные потоки Kotlin
viewModelScope.launch {
val result = withContext(Dispatchers.IO) { /* фоновая работа */ }
// UI обновление (автоматически в Main)
}
-
ExecutorService - пулы потоков для параллельных задач
-
WorkManager - для отложенных фоновых задач
Coroutines сейчас являются предпочтительным выбором благодаря интеграции с Kotlin, простоте и минимальному boilerplate коду.