2012-01-03 16 views
7

मुझे एक ही समस्या है Running multiple AsyncTasks at the same time -- not possible? सिवाय इसके कि मैं एंड्रॉइड 4.0 के साथ एंड्रॉइड 4.0 का उपयोग करता हूं: minSdkVersion = "14"।एंड्रॉइड 4.0 एसिंक्टास्क एक ही समय में संभव नहीं

मैं उसका उदाहरण की कोशिश की, और भी मिलता है:

bar bar bar 
bar bar bar 
bar bar bar 

संपादित करें:

मैं समाधान here

के बजाय का उपयोग कर पाया:

task.execute(); 

उपयोग:

यह बताते हैं की तरह ( documentation से)
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, null); 
+0

कृपया अपनी आत्मा को एक उत्तर के रूप में जोड़ने पर विचार करें और इसे स्वीकार करें ताकि यह प्रश्न अब अनुत्तरित के रूप में दिखाई न दे। यदि आप करते हैं तो मैं आपके उत्तर को ऊपर उठाऊंगा। –

उत्तर

6

ध्वनि:

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

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

+2

और कोड कोड के साथ, 'myAsyncExtendingClass() को निष्पादित करने के बजाय। Execute()', आप 'myAsyncExtendingClass() को निष्पादित करेंगे। ExecuteOnExecutor (AsyncTask.THREAD_POOL_EXECUTOR," ");' –

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