Каков оптимальный способ обработки HttpClient на Android? - PullRequest
4 голосов
/ 31 августа 2011

Я могу найти множество учебных пособий, которые показывают, как должен конструироваться и использоваться HttpClient в простом случае. Но я не могу найти достойную документацию для более сложных случаев.

В моем приложении у меня есть несколько Активностей, и каждый из них должен иметь возможность взаимодействовать с удаленным Web-сервисом с помощью сообщений POST, используя HTTPS. Я также должен войти в эту службу, поэтому мне нужно управлять файлом cookie для входа.

В настоящее время я создаю отдельный HttpClient для каждой операции в .onStart () и выпускаю его в .onStop (). У меня есть рабочая очередь, которая содержит объекты, описывающие детали задачи, которая должна взаимодействовать с удаленным сервисом. Я выполняю эти задачи, используя один рабочий AsyncTask. Это решение, похоже, работает, но я просто не уверен, что оно самое оптимальное.

Я думал о 2 других архитектурах:

  1. Создание фоновой службы, которая обрабатывает HttpClient. Таким образом, я мог бы использовать один и тот же экземпляр для нескольких действий, и я думаю, что это было бы лучше. Но я не уверен, когда остановить эту Службу и выпустить HttpClient.
  2. Создавайте HttpClient только при необходимости. Например, когда пользователь нажимает кнопку, которая инициирует удаленный вызов, я создаю клиент, настраиваю файлы cookie и сообщение POST, выполняю его, а когда это делается, я немедленно отпускаю его. Я думаю, что этот подход довольно плох из-за накладных расходов, связанных с созданием такого клиента (особенно если я использую HTTPS).

Итак, кто-нибудь, у кого есть больше знаний о работе HttpClient и о том, как с ним следует обращаться в Android, не мог бы ты прокомментировать эти подходы / поделиться некоторыми полезными советами?

Спасибо

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

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

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

AsyncTask. Найдите в Google метод GrabURl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...