¿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