Android: Bug with ThreadSafeClientConnManager downloading images

前端 未结 11 1452
我寻月下人不归
我寻月下人不归 2020-12-23 23:12

For my current application I collect images from different \"event providers\" in Spain.

  Bitmap bmp=null;
  HttpGet httpRequest = new HttpGet(strURL);

  l         


        
11条回答
  •  南方客
    南方客 (楼主)
    2020-12-24 00:06

    HttpURLConnection hConn = null;
            hConn = openHttpConnection(szUrl);
    
            hConn.setRequestMethod("GET");  
            hConn.setRequestProperty("User-Agent",szUserAgent);
            hConn.setRequestProperty("Accept",szAccept);
            hConn.setRequestProperty("Accept-Charset",szCharset);
    
            hConn.setInstanceFollowRedirects(true);
            hConn.setUseCaches(true);
            hConn.setChunkedStreamingMode(8*1024);
            hConn.setDoInput(true);
            hConn.setConnectTimeout(60*1000);
            hConn.setReadTimeout(60*1000);
            hConn.connect();
    
    
            InputStream bmpIs = hConn.getInputStream();
            BufferedInputStream bmpBis = new BufferedInputStream(bmpIs); 
            Bitmap bmpThumb = null;
    
            BitmapFactory.Options bfOpt = new BitmapFactory.Options();
    
            bfOpt.inScaled = true;
            bfOpt.inSampleSize = 2;
            bfOpt.inPurgeable = true;
    
            bmpThumb = BitmapFactory.decodeStream(bmpBis,null,bfOpt);
    
            if(bmpThumb == null)
            {
                for(int i=0; i<10; i++)
                {
                    Thread.sleep(200);
                    System.gc();
    
                    bmpThumb = BitmapFactory.decodeStream(bmpBis,null,bfOpt);
    
    
                    if(bmpThumb == null)
                        bfOpt.inSampleSize += 1;
                    else
                        break;
                }
            }
    

提交回复
热议问题