आपको HttpURLConnection
के पुन: उपयोग से वास्तव में कोई लाभ नहीं मिलेगा।
एक बात है कि बहुत आपके आवेदन को फायदा होगा यदि आप कुछ समय बिताने के Async कार्य, जो आप अपने मुख्य कोड के लिए कॉलबैक के साथ बहु लड़ी HTTP अनुरोध की शक्ति का उपयोग करने की अनुमति देगा में देख रहा है।
देखें: http://www.vogella.com/articles/AndroidPerformance/article.html Async कार्य का उपयोग कैसे किया जा सकता है के एक अच्छे उदाहरण के लिए।
एक अच्छा प्रारंभिक बिंदु हालांकि एंड्रॉइड डेवलपर ब्लॉग है, जहां उनके पास सर्वर से एक छवि को अतुल्यकालिक रूप से डाउनलोड करने का एक उदाहरण है, जो आपकी आवश्यकताओं को अच्छी तरह से मेल करेगा। कुछ अनुकूलन के साथ आप एक अच्छा प्रदर्शन के लिए एक बार में कई एसिंक्रोनस अनुरोध भेज सकते हैं।
गूगल लेख पाया जा सकता है पर: 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
विधि है जहां से डाउनलोड जगह लेता है, और से दूर पूरी तरह से अतुल्यकालिक हो जाएगा आपका मुख्य यूआई थ्रेड।
एक बुनियादी उदाहरण के रूप में, आप अपने आवेदन तो इस तरह कॉल करने के लिए संशोधित कर सकते हैं: एक अनुकूलन के लिए
for(int i = 0; i < 100; i++){
new DownloadImageTask().execute("http://www.android.com/image" + i + ".jpg");
}
हालांकि, मैं शायद एक पिरोया कतार प्रणाली बनाने एक बार में बाहर 100 अनुरोधों फेंक नहीं होता है, जो शायद 4 या 5 समवर्ती कनेक्शन की अनुमति देगा और उसके बाद बाकी के माध्यम से आ रहा है जब लंबित अनुरोध के ArrayList
बनाए रखने के द्वारा एक और खत्म बंद पढ़ने के लिए रहते हैं।
स्रोत
2012-11-23 10:49:52
यह दृश्यों के पीछे कनेक्शन पूलिंग करता है। – EJP