क्या यह संभव है, एक AsyncTask के भीतर से जो गतिविधि गतिविधि वर्ग का एक आंतरिक वर्ग नहीं है, जिसने शुरू की गई गतिविधि के उदाहरण का संदर्भ प्राप्त किया है AsyncTask का निष्पादन?AsyncTask से कॉलिंग गतिविधि को संदर्भित करना (एक आंतरिक वर्ग के रूप में नहीं)
मुझे this thread के बारे में पता है, हालांकि यह बिल्कुल सही नहीं है कि कॉलिंग गतिविधि का संदर्भ कैसे दिया जाए। कुछ लोग एसिंक टास्क कन्स्ट्रक्टर के पैरामीटर के रूप में गतिविधि के संदर्भ को पारित करने का सुझाव देते हैं, हालांकि, यह बताया गया है कि ऐसा करने से हमेशा नलपोइंटर अपवाद होता है।
तो, मैं एक नुकसान में हूँ। मेरा AsyncTask मजबूत कार्यक्षमता प्रदान करता है, और मैं इसे में प्रत्येक गतिविधि में उपयोग करने के लिए एक आंतरिक कक्षा के रूप में डुप्लिकेट करना नहीं चाहता हूं। एक सुरुचिपूर्ण समाधान होना चाहिए।
प्वाइंट बस * खुद के लिए कोशिश कर रहा है * यह पहली पर ले लिया:
वैकल्पिक रूप से, अगर चीजें एक भी पदानुक्रम में फिट नहीं है, एक अंतरफलक है। मैं उत्सुक हूं कि आप मेरी स्थिति को कैसे संभालेंगे: यह कुछ भी जटिल नहीं है; मैं मूल रूप से पास किए गए यूआरएल पर मूल http GET अनुरोध करने के लिए एक डाउनलोडफाइलटास्क बनाने की कोशिश कर रहा हूं, और फिर एप्लिकेशन वर्तमान गतिविधि/स्थिति के आधार पर डाउनलोड की गई फ़ाइलों के साथ अलग-अलग चीजें करेगा। मेरे पास अलग-अलग गतिविधियां हैं जिन्हें विभिन्न उद्देश्यों के लिए फ़ाइलों को डाउनलोड करने की आवश्यकता है। क्या यह बेहतर सेवा या किसी अन्य समाधान के साथ किया जाएगा? – stormin986
आह, मैं देखता हूं। जैसा कि मैंने इसे देखा है, आपके पास दो विकल्प हैं। एक 'डाउनलोडफाइल टास्क' को सार्वजनिक लेकिन अमूर्त बनाना है, और उसमें दी गई गतिविधि के लिए अद्वितीय चीजों के लिए निजी आंतरिक वर्ग कार्यान्वयन है। दूसरा 'डाउनलोडफाइल टास्क' सार्वजनिक बनाना और कन्स्ट्रक्टर में * कुछ * पास करना है। इस मामले में, युग्मन को कम करने के लिए, हो सकता है कि आप 'गतिविधि' को पारित नहीं करना चाहते हैं, लेकिन कुछ अन्य प्रकार के इंटरफ़ेस जो 'AsyncTask' को सीमित कर सकते हैं। इस तरह, आप 'गतिविधि', या एक अलग वस्तु के रूप में, या जो कुछ भी इंटरफ़ेस को कार्यान्वित करना चुन सकते हैं। – CommonsWare
सीडब्ल्यू, आप मेरे बहुत सारे पर बहुत मददगार रहे हैं, इसलिए धन्यवाद! अगर मैं वास्तव में एक सार्वजनिक AsyncTask में अपनी गतिविधि का एक उदाहरण पास कर सकता हूं, तो मुझे लगता है कि यह यहां जाने का सबसे अच्छा तरीका है। आप युग्मन युग्मन का उल्लेख करते हैं ... आप इसका क्या मतलब रखते हैं और आप किस प्रकार की स्थितियों से आम तौर पर इससे बचना चाहते हैं? – stormin986