2012-02-05 41 views
0

我的應用程序發佈了一些字符串到我的服務器。
它使用HttpClient發送數據。
所有功能都完美無1個問題..
Android HttpClient異常控制問題(管理器關閉)

如果我的手機是在聯網狀態,那麼
我點擊提交按鈕 - >數據單項可以在我的服務器上發送。 (實得很好)

如果我的手機unnetworking(disconneing)狀態(這意味着在不使用WiFi或3G ...)
我點擊提交按鈕 - >它顯示了錯誤對話框,「你必須檢查網絡」

但問題是...
只要(約0.5〜1.5秒)我點擊無線網絡啓用按鈕,然後我點擊提交按鈕,0​​ HttpClient的執行後顯示出來的異常問題。 (FC)
我可以控制異常問題嗎? 我想顯示錯誤對話框,但是,我無法控制的異常。
我認爲在wifi期間啓用(或3g),執行某些事情會發生問題。

這是錯誤的句子
02-06 00:48:41.250:E/AndroidRuntime(20183):java.lang.IllegalStateException:由造成管理器關閉。

來源

(...ready for setting params, and string datas..and so on) 

      HttpPost httpPost = new HttpPost(url); 
      try { 
       httpPost.setEntity(mpEntity); 
       httpPost.addHeader("cookie", cookie); 

       //↓This execute is problem. How can I control exception? 
       HttpResponse response = httpClient.execute(httpPost); 

       HttpEntity resEntity = response.getEntity(); 
       InputStream content = resEntity.getContent(); 
       return content; 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } catch (ClientProtocolException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      httpClient.getConnectionManager().shutdown(); 
      return null; 
     } 

回答

3

我覺得有問題的線是

 httpClient.getConnectionManager().shutdown(); 

This is the original Apache documentation,沒有更多的代碼(和完整的堆棧跟蹤)很難理解發生了什麼事情。我認爲這只是糟糕的API使用