Ответ
Асинхронный запрос — это операция, которая выполняется в фоновом потоке, не блокируя основной (UI) поток приложения. Это позволяет избежать "зависаний" интерфейса во время выполнения долгих операций (сетевых запросов, работы с БД и т.д.). Результат обрабатывается через колбэки, корутины или RxJava.
Пример с Retrofit и корутинами:
interface ApiService {
@GET("users/{id}")
suspend fun getUser(@Path("id") userId: String): User
}
// Вызов в ViewModel
viewModelScope.launch {
try {
val user = apiService.getUser("123")
_userLiveData.value = user
} catch (e: Exception) {
_errorLiveData.value = e.message
}
}
Ключевые моменты:
- Не блокирует UI
- Результат приходит позже основного потока выполнения
- Обработка ошибок обязательна