2014-04-09 78 views
0

這是一段代碼正在使用下載圖像,有人可以告訴我如何優化此代碼以減少每個圖像的下載時間。加速下載時間

 URL url; 
     HttpURLConnection connection = null; 
     InputStream input = null; 
     System.setProperty("http.keepAlive", "true"); 
     try { 
      url = new URL(urlString); 
      connection = (HttpURLConnection) url.openConnection(); 
      connection.setConnectTimeout(HTTP_CONNECTION_TIMEOUT); 
      connection.setRequestProperty("Connection", "Keep-Alive"); 
      input = connection.getInputStream(); 
      return BitmapFactory.decodeStream(input); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
      return null; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return null; 
     } finally { 
      currentRequestInProgress.remove(urlString); 
      if (connection != null) 
       connection.disconnect(); 
      if(input != null){ 
       try { 
        input.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 

     } 
+0

請確保使用AsyncTask,因爲在最新版本中,無法在主UI線程上完成。 – Nepster

回答

1

我也忙着暗示畢加索時OrhancC1打我吧,所以如果你最終使用它歸功於他。

畢加索太棒了!我們在我們的一個項目中使用它,並設法使HTTP緩存正常工作。在我們的應用程序中,我們下載的圖像不會非常頻繁地更改,所以一旦第一次加載後,從緩存中解析出的任何後續加載比網絡快得多。

如果出於任何原因,這不是一個選項,這個問題的答案可能是相關的:Speed Up download time