¿Cuál es la mejor manera de manejar un HttpClient en Android?

Puedo encontrar un montón de tutoriales que muestran cómo debe HttpClient construido y utilizado en un caso sencillo . Pero no encuentro ninguna documentación decente para casos más complejos.

En mi aplicación, tengo un montón de actividades, y cada uno tiene que ser capaz de comunicarse con un WebService remoto con mensajes POST utilizando HTTPS. También tengo que iniciar sesión en este servicio, así que necesito administrar la cookie de inicio de sesión.

Actualmente, construyo un HttpClient separado para cada actividad en .onStart (), y lo libero en .onStop (). Tengo una cola de trabajo que contiene los objetos que describen los detalles de una tarea que tiene que comunicarse con el servicio remoto. Ejecuto estas tareas con un AsyncTask solo trabajador. Esta solución parece funcionar, pero no estoy seguro de que sea la más óptima.

He pensado en otras 2 arquitecturas:

  1. Creación de un servicio de fondo que controla el HttpClient. De esta manera podría ser capaz de utilizar la misma instancia a través de varias actividades, y supongo que esto sería mejor. Pero no estoy seguro de cuándo detener este Servicio y liberar el HttpClient.
  2. Cree un HttpClient sólo cuando sea necesario. Así, por ejemplo, cuando el usuario hace clic en un botón que inicia una llamada remota, construyo el cliente, configuro las cookies y el mensaje POST, lo ejecuto y cuando lo hago lo libero inmediatamente. Creo que este enfoque es bastante malo debido a la sobrecarga que participan en la creación de un cliente de este tipo (especialmente si utilizo HTTPS).

Así que cualquier persona que tiene más información sobre el funcionamiento de HttpClient y cómo debería tratarse en Android, ¿podría comentar sobre estos approches / compartir algunos consejos útiles?

Gracias

la solución 1 es buena. Puede detener su servicio una vez que su cola esté vacía. Se combina con su solución 2 en que el servicio se inicia sólo cuando sea necesario. Cuando el usuario hace clic en un botón, inicia el servicio y, por ejemplo, se enlaza con él y le da su solicitud.

Asíncrito Buscar en Google un método llamado GrabURl.

  • Cómo agregar json al cuerpo de una publicación http en java
  • Gestión de memoria HttpClient
  • ¿Por qué estoy recibiendo HttpResponse diferente de un navegador en android?
  • HttpClient que redirige a URL con espacios que lanzan excepción
  • ¿Cómo probar una unidad que usa HttpClient en Android usando el marco incorporado?
  • HttpClient problema con URL que incluyen rizadores
  • Autenticación de Apache HttpClient Digest
  • El Post HTTP de Multipart de Android no envía el tipo MIME del archivo
  • UnknownHostException al acceder a api.twitter.com
  • HTTP Post solicitudes utilizando HttpClient tomar 2 segundos, ¿por qué?
  • ¿Hay un HttpClient que maneja las solicitudes de almacenamiento en caché por sí solo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.