2015-03-09 7 views
14

मैंने पहले ही एक ऐसी गतिविधि विकसित की है जो JSON डेटा को पार्स करेगी और परिणाम को सूची दृश्य में प्रदर्शित करेगी। मैं इस उद्देश्य के लिए एक AsyncTask का उपयोग कर रहा हूँ।क्या आपके पास एक गतिविधि में दो AsyncTasks हो सकती है?

अब मुझे क्या चाहिए, जब मैं ListView में किसी आइटम पर क्लिक करता हूं, तो फ़ाइल को डाउनलोड करना प्रारंभ होना चाहिए। क्या मैं एक ही गतिविधि में एक और AsyncTask लिख सकता हूं ताकि यह AsyncTask मेरे लिए डाउनलोडिंग कार्य करेगा? क्या एक ही गतिविधि में एकाधिक AsyncTasks होने में कोई समस्या है?

+1

बेशक आप कर सकते हैं – Apurva

उत्तर

5

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

11

Doc से आप हाँ कर सकते हैं।

पहली बार पेश किए जाने पर, AsyncTasks को एक ही पृष्ठभूमि थ्रेड पर क्रमशः निष्पादित किया गया था। डोनट से शुरू होने पर, इसे धागे के पूल में बदल दिया गया था जो एकाधिक कार्यों को समानांतर में संचालित करने की अनुमति देता था। HONEYCOMB से शुरू होने पर, समानांतर निष्पादन के कारण सामान्य एप्लिकेशन त्रुटियों से बचने के लिए कार्यों को एकल थ्रेड पर निष्पादित किया जाता है।

आप वास्तव में समानांतर निष्पादन चाहते हैं, आप executeOnExecutor आह्वान कर सकते हैं THREAD_POOL_EXECUTOR साथ (java.util.concurrent.Executor, [] वस्तु)।

BEST उत्तर How स्वयं स्टैक ओवरफ्लो पर है।

2

हाँ .. आप कर सकते हैं।

AsyncTask सरल थ्रेड हैंडलर कार्यान्वयन है।

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

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