Что такое асинхронный запрос

«Что такое асинхронный запрос» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Асинхронный запрос — это операция, которая выполняется в фоновом потоке, не блокируя основной (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
  • Результат приходит позже основного потока выполнения
  • Обработка ошибок обязательна