@samarjan

Как выполнять запрос к серверу лучшим образом?

Делал проект в котором использовал сплэш активити во время которой происходили обращения к серверу, делал при помощи Handler'а, который при неудачной попытке заново запускал себя с некоторым таймаутом, сами обращения к серверу реализовывал при помощи библиотеки AQuery. Решение мне казалось не очень удачным, но поскольку все работало я решил оставить его таким. Моей ошибкой было оставить маленьким таймаут и оставить выполнение запросов до сервера, когда приложение уходило в трей, а сервер не отвечал и происходили постоянные запросы и в следствии всего этого после рекламы приложения упал сервер (приложение его же и заддосило). Я переделал логику, прочитал в документации к AQuery, что есть возможность прерывать выполнение потока пока не придет ответ, (до этого я просто отправлял запрос и через таймаут смотрел пришел ли он или нет), но такое решение не работало в Handler'e и пришлось использовать Thread. Пропало удобство остановки потока при уходе в трей (до этого в методе onStop вызывал Handler.removeCallbacksAndMessages(null)), а теперь использую логическую переменную, которая определяет стоит ли продолжать выполнять запросы к серверу в самом Thread'e.
Очень интересно, как еще реализуются запросы к серверу при запуске приложения (интересен Ваш опыт)? Или может я делаю это не правильно?
  • Вопрос задан
  • 2253 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Yurevich1
Можно делать thread с циклом while(!(!Thread.currentThread().isInterrupted())){}
а прерывать через thread.interrupt().
Как вариант, отсылать запросы можно как тупо через обычные методы ( java.net.HttpURLConnection) , так и при помощи библиотек, например, jsoup.org
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы