を再利用しても、実際には何のメリットもありませんHttpURLConnection
。
アプリケーションに大きなメリットをもたらすことの 1 つは、 Async Tasksを調べることに時間を費やすことです。これにより、メイン コードへのコールバックを使用してマルチスレッド HTTP リクエストの機能を利用できるようになります。
参照:
http://www.vogella.com/articles/AndroidPerformance/article.html
で、非同期タスクの使用方法の良い例を確認できます。
もちろん、良い出発点はAndroid Developers Blogです。ここには、サーバーから画像を非同期でダウンロードする例があり、要件にうまく適合します。いくつかの適応により、アプリケーションで複数の非同期リクエストを一度に送信して、パフォーマンスを向上させることができます。
Google の記事は
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
、保留中のリクエストの読み取りを維持することで、別の接続が終了したときに残りを通過させ続けることができます。 .