Кажется, что ваш OnClickListener заблокирован, пока он ожидает ответа от http://www.snee.com/xml/crud/posttest.cgi
. Выключение WiFi разрывает соединение с сокетом, поэтому ваш OnClickListener больше не блокируется в этот момент.
Если бы вы запускали основную часть этого обработчика как AsyncTask , я думаю, вы обнаружите, что можете нажать на кнопку любое количество раз (и залить свой сервер POST, когда вы сделай так; -)
Обновление
Ответ на ваше обновление, особенно в том, что Интернет и электронная почта заблокированы: похоже, были другие проблемы с отправкой POST через DefaultHttpClient
. Я предлагаю вам изучить использование AndroidHttpClient , если вы нацелены на Froyo и более поздние выпуски, и обязательно вызывать его метод close () , когда закончите соединение. Или, если вам нужно придерживаться DefaultHttpClient
, потому что вам нужно поддерживать более ранние выпуски, попробуйте позвонить client.getConnectionManager().shutdown()
, когда вы закончите с подключением. Я не могу обещать, что эти шаги помогут, но они кажутся хорошими, несмотря ни на что.
(Из моего комментария ниже: Что произойдет, если вы выключите WiFi перед запуском программы? Блокирует ли она все еще возможность просматривать и отправлять электронную почту? Кроме того, вы видите возвращенный HTML после вызова tv.setText(line)
? Наконец Я предлагаю помещать вызовы Log.d
в ваш обработчик исключений и после цикла readLine()
и посмотреть, достигнут ли один из них.)