重複使用HttpURLConnection
並不會真正獲得任何好處。
一兩件事,這將大大有利於你的應用程序是,如果你花一些時間尋找到異步任務,這將允許您利用與回調多線程的HTTP請求的力量,你的主代碼。
請參閱: http://www.vogella.com/articles/AndroidPerformance/article.html 瞭解如何使用異步任務的一個很好的例子。
一個很好的起點雖然當然是Android開發者博客,他們有一個例子從服務器異步下載圖像,這將很好地滿足您的要求。通過一些適應,您可以讓應用程序一次發送多個異步請求,以獲得良好的性能。
的谷歌的文章,可以發現在: http://android-developers.blogspot.co.uk/2009/05/painless-threading.html
的關鍵區域看,就是:
public void onClick(View v) {
new DownloadImageTask().execute("http://example.com/image.png");
}
private class DownloadImageTask extends AsyncTask {
protected Bitmap doInBackground(String... urls) {
return loadImageFromNetwork(urls[0]);
}
protected void onPostExecute(Bitmap result) {
mImageView.setImageBitmap(result);
}
}
的loadImageFromNetwork
方法就是下載發生,並且將完全異步遠離你的主UI線程。
作爲一個基本的例子,你可以修改你的應用程序來調用這個像這樣:
for(int i = 0; i < 100; i++){
new DownloadImageTask().execute("http://www.android.com/image" + i + ".jpg");
}
雖然一個優化,我不會扔100只請求了一次,也許創建一個線程隊列系統將允許可能有4或5個併發連接,然後通過維持掛起的請求的ArrayList
讀取結束時其餘部分通過。
它在幕後做連接池。 – EJP