Закрытие действия не оказывает прямого влияния на процесс, в котором размещается действие. Все остальные потоки продолжают работать. Вам следует переопределить один или несколько методов жизненный цикл (onPause
, onDestroy
и т. Д.), Чтобы обнаружить, что действие завершается, и прерывать или иным образом завершать запущенные потоки. Метод действия isFinishing()
полезен для различения активности, которая закрывается, и операции, которая уничтожается и перезапускается из-за изменения конфигурации.
Ваш поток должен быть написан с методом, чтобы отменить выполнение. В частности, для apache-commons этот метод должен состоять из двух шагов. Во-первых, вы должны вызвать abort()
для метода, который вы передали в ваш метод HttpClient.execute()
. Во-вторых, вы должны закрыть само соединение:
client.getHttpConnectionManager()
.getConnection(client.getHostConfiguration()).close();
На самом деле, если вы делаете только последний шаг, этого на самом деле должно быть достаточно, чтобы добавить IOException
в метод и остановить все.