Я попытался прервать задачу и увяз в нескольких типах исключений, в зависимости от того, что он делал во время прерывания, и получал ошибки компиляции, которые я ловил, исключения, которые, по его словам, не могли быть выброшены. Даже когда я получил некоторый рабочий код, у него все еще были проблемы с надежностью на Froyo (Galaxy S - Vibrant).
Итак, я сделал резервную копию и попытался использовать InputStream.available в цикле с коротким сном и проверкой флага, установленного для завершения задачи чтения (так что задача никогда не приостанавливалась, кроме как в спящем режиме). Это отлично работает на различных версиях Android.
Кажется, уловка заключается не в том, чтобы внешне остановить поток, а в том, чтобы он обнаружил необходимость выйти и вернуться самостоятельно.
Кажется, что-то вроде клочья, вроде опроса чтения. Но код теперь стабилен, и производительность телефона, похоже, не страдает.