Ответ
Сетевые запросы выполняются не на главном (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)
}
}