¿Cómo cancelo una solicitud http de Android?

Estoy usandoAsyncTask para iniciarAndroidHttpClient y ejecutar una solicitud POST endoInBackground(). Me gustaría que el usuario pueda cancelar la solicitud presionando el botón Atrás. @AsyncTask tiene uncancel()étodo @ que solo cambia el valor de retorno booleano deisCancelled() y luego espera adoInBackground() para finalizar antes de llamar aonCancelled(). Esto significa queAsyncTask lo deja a ladoInBackground() método para verificar continuamente si la tarea se ha cancelado (usandoisCancelled()). Si se ha cancelado,doInBackground() debe regresar prematuramente prematuramente. El problema que tengo es que el 99% de la ejecución del subproceso de trabajo endoInBackground() se detiene en:

HttpResponse response = httpClient.execute(request[0]);

porque esta llamada a función síncrona encapsula los aspectos de red de la solicitud. ¿Cómo puedo cancelar la solicitud a mitad de camino?

Estoy considerando intentar cambiar el tiempo de espera durante la solicitud, pero esto parece inseguro.

También estoy considerando anularAsyncTask 'scancel() método, que puede funcionar mejor.

¿Alguna sugerencia

Respuestas a la pregunta(4)

Su respuesta a la pregunta