重复使用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