मैं UI पर डेटा अपलोड करने के लिए AsyncTask का उपयोग कर रहा हूं। मैंने सर्वर से डेटा को एक अलग तरीके से डाउनलोड करने के लिए कोड लिखा और मैं उस विधि को डिनबैकग्राउंड से कॉल कर रहा हूं। यह त्रुटि देगा क्योंकि UI विधियां doInBackground से नहीं पहुंच सकती हैं। लेकिन, मैं एक्सेस करना चाहता हूं। doinBackground से UI विधि तक पहुंचने के लिए कोई वैकल्पिक प्रक्रिया है?एंड्रॉइड: AsyncTask doInBackground विधि से यूआई थ्रेड पर विधियों को कॉल करना
उत्तर
किसी भी वैकल्पिक प्रक्रिया वहाँ doinBackground से यूआई विधि का उपयोग करने की है।?
publishProgress()
doInBackground()
पर कॉल करें। अपने यूआई-अपडेटिंग लॉजिक को अपने AsyncTask
के onProgressUpdate()
में रखें। को publishProgress()
पर कॉल करने के बाद मुख्य एप्लिकेशन थ्रेड (ए.के.ए., यूआई थ्रेड) पर कॉल किया जाएगा। Here is a sample project इसका प्रदर्शन।
कॉल runOnUiThread (Runnable कार्रवाई)
हाय मैं doInBackground से runOnUiThread() कॉल कर सकते हैं।? यह काम करेंगे।? या हमेशा की तरह मैं खुद OnCreate से runOnUiThread कॉल कर सकते हैं। यहाँ मैं एक संदेह है। RunOnUiThread यूआई जबकि अवरुद्ध कर देगा डेटा अपलोड कर रहा है। –
जब आप इसे doInBackground() से कॉल करते हैं तो यह समझ में आता है .. या अन्यथा इसका कोई मतलब नहीं है .. – ngesh
आपको रनऑनयूथ्रेड लिखना है जहां आप अपना मुख्य यूआई अपडेट करते हैं। –
जैसा कि अन्य ने बताया है, आप runOnUiThread का उपयोग कर सकते हैं। लेकिन, ऐसा लगता है कि आप अपने doInBackground में ऐसा करना चाहते हैं। यदि आप उपयोगकर्ता को प्रगति का संकेत देना चाहते हैं तो आप इसे AsyncTask.onProgressUpdate में संभालना चाहते हैं और अपने doInBackground में प्रकाशित प्रगति को कॉल करना चाहते हैं।
आप यहाँ AsyncTask के बारे में अधिक पढ़ सकते हैं: http://developer.android.com/reference/android/os/AsyncTask.html
-Dan
उपयोग doInBackground()
सिर्फ कार्यों के लिए:
- कुछ समय
- संबंधित यूआई नहीं कर रहे हैं ले लो
फिर आपको कार्यान्वित कर सकते हैंAsyncTask.onPostExecute()
के लिए AsyncTask
JavaDoc से से मुख्य यूआई धागे पर उन परिणामों को संभालने के लिए कोड को चलाने के लिए:
"doInBackground के बाद यूआई धागे पर चलाता है। ... "
- 1. AsyncTask के doInBackground AsyncTask :: execute को
- 2. एंड्रॉइड यूआई थ्रेड (यूआई थ्रेड)
- 3. एंड्रॉइड - वर्कर थ्रेड से यूई थ्रेड को कॉल करना
- 4. AsyncTask के doInBackground (पैरामीटर ... पैरामीटर)
- 5. AsyncTask doInBackground पैरामीटर बनाम कन्स्ट्रक्टर पैरामीटर
- 6. अधिसूचना पर एंड्रॉइड कॉल विधि
- 7. एंड्रॉइड में asynctask थ्रेड को कैसे रोकें?
- 8. थ्रेड समाप्त होने पर विधि को कॉल करना
- 9. एंड्रॉइड यूआई थ्रेड
- 10. एंड्रॉइड AsyncTask
- 11. टाइमर थ्रेड से जीयूआई थ्रेड पर कॉल विधि
- 12. एंड्रॉइड: क्या यूआई थ्रेड की तुलना में AsyncTask किसी अन्य थ्रेड में वापस आ सकता है?
- 13. AsyncTask रिटर्न मूल्यों पर OnPostExcecute विधि कर सकते हैं?
- 14. एंड्रॉइड: AsyncTask से एक यूआई को कैसे अपडेट करें यदि AsyncTask एक अलग वर्ग में है?
- 15. क्या एंड्रॉइड AsyncTask doInBackground कार्य निष्पादन को क्रमबद्ध करने के लिए सिंक्रनाइज़ किया जा सकता है?
- 16. ContentProvider insert() हमेशा यूआई थ्रेड पर चलता है?
- 17. एंड्रॉइड: asynctask
- 18. AsyncTask एंड्रॉइड
- 19. AsyncTask क्लास पर PostExecute विधि
- 20. एंड्रॉइड थ्रेड प्रबंधन पर
- 21. सी #: अन्य थ्रेड से यूआई थ्रेड पर संवाद दिखाएं
- 22. उसी वेब सेवा से वेब विधियों को कॉल करना
- 23. जावास्क्रिप्ट से बीएचओ विधि को कॉल करना?
- 24. किसी टेम्पलेट से मॉडल पर एक विधि को कॉल करना
- 25. एंड्रॉइड AsyncTask गतिविधि संदर्भ
- 26. एंड्रॉइड के बेस एडाप्टर को कॉल करना एक श्रोता कॉलबैक विधि से डेटाटाट चेंज() को सूचित करें
- 27. रनटाइम पर कॉल विधि
- 28. एंड्रॉइड पुनरारंभ करें AsyncTask
- 29. एंड्रॉइड से एक webservice से कनेक्ट - AsyncTask या सेवा?
- 30. एनएसटीमर विधि को कॉल करना
कॉमन्सवेयर नाम पर्याप्त है। +1 –
स्पष्ट उत्तर के लिए +1 –
runOnUiThread() तरीका जानता था लेकिन इस +1 को संभालने के अन्य दृष्टिकोण को पसंद आया। – Deva