подключение к веб-сервису с Android - AsyncTask или Сервис? - PullRequest
7 голосов
/ 07 марта 2011

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

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

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

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

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

Ответы [ 3 ]

6 голосов
/ 07 марта 2011

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

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

0 голосов
/ 11 мая 2012

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

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

0 голосов
/ 04 августа 2011

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

...