2011-09-27 15 views
10

मैं एंड्रॉइड के लिए एक एप्लीकेशन लिख रहा हूं जो उपयोगकर्ताओं को फ़ाइलों की सूची ब्राउज़ करने और उन्हें डाउनलोड करने देता है। प्रत्येक डाउनलोड के लिए, मैंने एक थ्रेड बनाया और मैं फ़ाइल को HttpURLConnection इंस्टेंस के साथ डाउनलोड करता हूं (थोड़ी देर में कनेक्शन से पढ़ने से)।एंड्रॉइड अनुप्रयोगों में एक साथ कई फाइलें डाउनलोड करना

यह विधि एक सक्रिय डाउनलोड के साथ ठीक काम करती है। लेकिन जब उपयोगकर्ता एक से अधिक शुरू होता है, तो प्रदर्शन नाटकीय रूप से खराब हो जाता है। अधिकांश समय, ये समांतर डाउनलोड सभी बैंडविड्थ का उपभोग करते हैं और उपयोगकर्ता फ़ाइलों को ब्राउज़ करने में असमर्थ हैं (जो फाइल सूची लोड करने के लिए एक और HttpUrlConnection का उपयोग करता है)।

डाउनलोड सिस्टम को परिष्कृत करने पर कोई सुझाव? धन्यवाद।

पीएस .: Google क्रोम और फ़ायरफ़ॉक्स जैसे लोकप्रिय ब्राउज़र अच्छा लगता है। कोई जानता है कि वे कैसे काम करते हैं?

+0

आप दे रही है डाउनलोड धागे एक निम्न प्राथमिकता की कोशिश कर सकते। – vee

+0

यह कैसे संभव है? – Sadjad

+0

डॉक्टर: http://developer.android.com/reference/java/lang/Thread.html#setPriority(int) उदाहरण: http://stackoverflow.com/questions/5198518/whats-the-difference -बेटवीन-थ्रेड-सेटप्रायोरिटी-एंड-एंड्रॉइड-ओएस-प्रोसेस-सेटथ्रिया – vee

उत्तर

7

हां, मुझे कुछ कनेक्शनों को थ्रॉटल करने का कोई तरीका नहीं पता है। हालांकि, एक साथ व्यावहारिक दृष्टिकोण एक साथ डाउनलोड की संख्या को नियंत्रित करने के लिए डाउनलोड की कतार को लागू करना होगा। आपके मामले में, आप शायद एक समय में केवल 1 चीज़ डाउनलोड करना चाहते हैं। इसे कुछ अलग तरीकों से लागू किया जा सकता है। http://mindtherobot.com/blog/159/android-guts-intro-to-loopers-and-handlers/

संपादित करें: 1: देखें चूहों की टिप्पणी

यहाँ हैंडलर और एक Looper साथ यह करने के लिए एक तरीका है। एक समय में अधिकतम 2 थ्रेड डाउनलोड करना बेहतर हो सकता है।

+7

मैं एक समय में सिर्फ एक स्ट्रीम डाउनलोड करने की अनुशंसा नहीं करता। समस्या तब हो सकती है जब एक स्ट्रीम अप्राप्य हो, डाउनलोड धीमा हो या अन्य समस्या हो। फिर सभी डाउनलोडों को समाप्त करने या त्रुटि के लिए इस के लिए इंतजार करना होगा। –

+1

@mice अच्छा बिंदु। – Ian

4

आप एंड्रॉइड एसडीके में DownloadManager कक्षा को देखना चाहेंगे .. यह केवल ऊपर या बराबर एपीआई स्तर 2.3 उपलब्ध है।

http://developer.android.com/reference/android/app/DownloadManager.html

कुछ ट्यूटोरियल आप को देखने के लिए चाहते हो सकता है ..

http://jaxenter.com/downloading-files-in-android.1-35572.html

http://www.vogella.de/blog/2011/06/14/android-downloadmanager-example/

संबंधित मुद्दे