最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android異常 java.lang.IllegalStateException解決方法

 更新時間:2016年11月21日 09:35:08   作者:DeMon輝  
這篇文章主要介紹了Android異常 java.lang.IllegalStateException解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Android異常詳情介紹

這種異常我遇到以下兩種情況:
1. java.lang.IllegalStateException: No wrapped connection.
2.java.lang.IllegalStateException: Adapter is detached.

原因:

1.單線程一次執(zhí)行一個請求可以正常執(zhí)行,如果使用多線程,同時執(zhí)行多個請求時就會出現(xiàn)連接超時.
2.HttpConnection沒有連接池的概念,多少次請求就會建立多少個IO,在訪問量巨大的情況下服務(wù)器的IO可能會耗盡。
3.通常是因?yàn)镠ttpClient訪問單一實(shí)例的不同的線程或未關(guān)閉InputStream的httpresponse。

解決方案:獲得httpclient線程安全

解決前代碼:

public HttpClient httpClient = new DefaultHttpClient();
 public void postNoResult(final Context context, final String url, final Map<String, String> maps, final String show) {
  new Thread() {
   @Override
   public void run() {
    try {
     HttpPost post = new HttpPost(url);
     List<NameValuePair> params = new ArrayList<NameValuePair>();
     for (String key : maps.keySet()) {
      params.add(new BasicNameValuePair(key, maps.get(key)));
     }
     post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
     HttpResponse response = httpClient.execute(post);//報錯位置
     if (response.getStatusLine().getStatusCode() == 200) {
      Looper.prepare();
      String r = EntityUtils.toString(response.getEntity());
      ToastUtil.print_log(r);
      if (show != null) {
       ToastUtil.show(context, show);
      }
      Looper.loop();}
    } catch (UnsupportedEncodingException e) {
     e.printStackTrace();
    } catch (ClientProtocolException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }}}.start();
 }

解決后代碼:

public HttpClient httpClient = getThreadSafeClient();//獲得httpclient線程安全。
public static DefaultHttpClient getThreadSafeClient() {
//獲得httpclient線程安全的方法
  DefaultHttpClient client = new DefaultHttpClient();
  ClientConnectionManager mgr = client.getConnectionManager();
  HttpParams params = client.getParams();
  client = new DefaultHttpClient(new ThreadSafeClientConnManager(params,
    mgr.getSchemeRegistry()), params);
  return client;
 }

  public void postNoResult(final Context context, final String url, final Map<String, String> maps, final String show) {
  new Thread() {
   @Override
   public void run() {
    try {
     HttpPost post = new HttpPost(url);
     List<NameValuePair> params = new ArrayList<NameValuePair>();
     for (String key : maps.keySet()) {
      params.add(new BasicNameValuePair(key, maps.get(key)));
     }
     post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
     HttpResponse response = httpClient.execute(post);//報錯位置
     if (response.getStatusLine().getStatusCode() == 200) {
      Looper.prepare();
      String r = EntityUtils.toString(response.getEntity());
      ToastUtil.print_log(r);
      if (show != null) {
       ToastUtil.show(context, show);
      }
      Looper.loop();}
    } catch (UnsupportedEncodingException e) {
     e.printStackTrace();
    } catch (ClientProtocolException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }}}.start();
 }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

汉源县| 长治市| 吉水县| 泰来县| 满城县| 会昌县| 金乡县| 黄浦区| 理塘县| 霍州市| 原阳县| 永修县| 淳安县| 盐池县| 鲁甸县| 霍山县| 柳林县| 浦东新区| 安远县| 方山县| 沾益县| 马鞍山市| 桓台县| 宁国市| 巨野县| 澄江县| 德令哈市| 新蔡县| 建平县| 来安县| 鄂托克旗| 南康市| 南皮县| 明水县| 鲁山县| 云和县| 株洲县| 武川县| 内黄县| 灌阳县| 东方市|