मैं मुद्दों के बिना कई स्थानों में AsyncTask का उपयोग कर रहा हूँ।पैटर्न AsyncTask "प्रक्रियात्मक" बनाने के लिए पैटर्न
अब हनीकॉम के साथ, सभी नेटवर्क I/o को यूआई थ्रेड से अलग थ्रेड में होना चाहिए, जो कई मामलों में स्थानों में AsyncTasks की आवश्यकता होती है, जहां सिंक्रोनस नेटवर्क कनेक्शन से पहले उपयुक्त था (हनीकॉम एक अपवाद फेंक देगा मुख्य/ui थ्रेड पर किसी भी नेटवर्क i/o के लिए)।
अब मैं मूल रूप से Object result = MyAsyncTask().execute()
जैसे कुछ प्राप्त करना चाहता हूं, इसके लिए अच्छे पैटर्न हैं?
मुझे AsyncTask Android - Design Pattern and Return Values मिला है जो समझ में आता है और यह भी है कि जीडब्ल्यूटी चीजें कैसे करता है, लेकिन किसी भी तरह यह पूंछ से कुत्ते को कुचलने जैसा लगता है (और फिर यह केवल मुझे हो सकता है कि मस्तिष्क को और अधिक मोड़ने की जरूरत है)।
धन्यवाद - यह वही था जो मैं खोज रहा था - मैं इसे पहले कैसे याद कर सकता था। कुछ हिस्सों के लिए जीडब्ल्यूटी पैटर्न काफी अच्छा है, लेकिन यह .... एसिंक टैक्स समाप्त होने तक इसकी आवश्यकता होने पर बहुत समझदारी होती है। –
बस विचार के लिए भोजन और दूसरों के लिए इस जवाब में ठोकर खा रहा है, निष्पादित()। UI थ्रेड से प्राप्त करें() यूआई थ्रेड पर ऑपरेशन चलाने के समान ही है। हालांकि यह मुख्य धागे पर नेटवर्क कॉल के लिए अपवाद को बढ़ाने से बचाता है, यह कार्रवाई के प्रभाव से बचता नहीं है। आपका यूआई थ्रेड तब तक अवरुद्ध होगा जब तक कि नेटवर्क एक्शन पूरा न हो जाए। आप पोस्टएक्सक्यूट विधि के द्वारा संभावित रूप से डेडलॉक का कारण बन सकते हैं क्योंकि वह विधि मुख्य थ्रेड के लिए उपलब्ध होने का इंतजार करेगी। आईएमएचओ आप AsyncTasks के लिए एक विरोधी पैटर्न पेश कर रहे हैं। –