На каком потоке выполняет запросы сеть

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

Ответ

Сетевые запросы выполняются не на главном (UI) потоке, а на фоновом. В Android запрещено выполнять сетевые операции на главном потоке, так как это приведёт к ANR (Application Not Responding).

Для работы с сетью используйте:

  • Kotlin Coroutines с Dispatchers.IO
  • RxJava с Schedulers.io()
  • Thread/AsyncTask (устарело)

Пример с Coroutines:

viewModelScope.launch(Dispatchers.IO) {
    val response = apiService.getData()
    withContext(Dispatchers.Main) {
        updateUI(response)
    }
}