@orbit070

В каком случае нужно выполнять http-запрос в главном потоке?

Здравствуйте.
Retrofit если я правильно понял позволяет делать запросы как в главном потоке(метод execute) так и не в главном(метод enqueue). Возможно я путаю термины, имею в виду что execute это вроде как блокирующий вызов, а enqueue нет. Несколько раз натыкался на утверждение, что запросы нельзя выполнять в главном потоке. Вопрос заключается в том, что если выполнять запросы в главном потоке нельзя, то зачем в Retrofit есть метод, выполняющий их в главном потоке?
  • Вопрос задан
  • 327 просмотров
Решения вопроса 2
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Андроид не позволяет выполнять запросы в ui потоке, никакие. Без исключений.
Retrofit можно использовать не только для Android, но и для любых java программ, а там запросы в главном потоке допустимы.
В андроиде можно создать свой поток и в нём выполнить блокирующий запрос.
Ответ написан
@Tiberal
thread { 
        RetrofitApi().makeRequest().execute()
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы