Подключение к веб-сервису от android – AsyncTask или Service?

Я пишу приложение для Android, которое будет подключаться к веб-сервису REST / JSON. Пользователи будут получать информацию, загружать комментарии, загружать и загружать изображения и т. Д.

Я знаю, что я не должен поддерживать всю эту сетевую связь в потоке Activity / UI, так как это вызовет ANR. Я запутался в том, следует ли использовать AsyncTask или Service с «ручной» резьбой для этого;

С помощью службы у меня просто был бы общедоступный метод для каждого метода в API-интерфейсе webservice. Затем я реализую потоки в каждом из этих методов.

Если бы я использовал AsyncTask, я бы создал вспомогательный класс, который определял AsyncTasks для каждого метода в API-интерфейсе webservice.

Какой метод является предпочтительным? Взаимодействие с web-сервисом произойдет только в том случае, если пользователь находится в Activity. Когда они переключаются на другое приложение или выходят из программы, нет необходимости связываться с веб-сервисом.

Я рекомендую вам перейти к решению AsyncTask. Это простой и простой способ запуска запросов или любых других фоновых задач пользовательского интерфейса.

Его также легко реализовать, например, onProgressUpdate, если вам нужно показать индикатор выполнения некоторого рода во время выполнения ваших запросов.

Я рекомендую IntentService , он не намного сложнее реализовать и определенно более надежный, потому что он не привязан так близко к ActivityLifecycle (в частности, к onConfigurationChange() )

Эта библиотека предоставляет асинхронную оболочку Apache httpclient, доступную в Android.

http://loopj.com/android-async-http/