मुझे आंतरिक कक्षा से नफरत है।एंड्रॉइड: AsyncTask से एक यूआई को कैसे अपडेट करें यदि AsyncTask एक अलग वर्ग में है?
मेरे पास एक मुख्य गतिविधि है जिसने 'शॉर्ट-लाइफ' AsyncTask लॉन्च किया है।
AsyncTask एक अलग फाइल में है, मुख्य गतिविधि का एक आंतरिक वर्ग
मैं async कार्य मुख्य गतिविधि से एक TextView अद्यतन करता है की जरूरत नहीं है।
मैं मैं onProgressUpdate से एक TextView अद्यतन कर सकते हैं पता है, अगर AsyncTask एक बाहरी, स्वतंत्र, async कार्य से एक आंतरिक वर्ग
लेकिन यह कैसे है?
अद्यतन: यह काम कर दिखाई देता है:
acitivty में मैं काम फोन
backgroundTask = new BackgroundTask(this);
backgroundTask.execute();
निर्माता में मैं है
public BackgroundTask(Activity myContext)
{
debug = (TextView) myContext.findViewById(R.id.debugText);
}
जहां डिबग AsyncTask के एक निजी क्षेत्र था।
तो onProgressUpdate मैं
debug.append(text);
आप सुझाव
आपका मतलब है कि किसी अन्य वर्ग में, आप यूआई तक पहुंचना चाहते हैं? –
हां। मुझे AsyncTask से टेक्स्ट व्यू को अपडेट करने की आवश्यकता है। – realtebo
आप अपने कन्स्ट्रक्टर में संदर्भ पास कर सकते हैं और इसे अपने गतिविधि क्लास पर कास्टिंग कर सकते हैं, तो आप runOnUIThread विधि का उपयोग करके टेक्स्ट व्यू बदल सकते हैं। –