यदि UI को अपडेट करने के लिए मुझे HTTP (या जो कुछ भी) के माध्यम से असीमित रूप से कुछ डेटा लोड करने की आवश्यकता है, तो मेरे पास एंड्रॉइड एप्लिकेशन लिखते समय कुछ विकल्प हैं (कई अन्य लोगों के बीच जो मुझे यकीन है कि मुझे याद आया):एंड्रॉइड Async डेटा लोडिंग विधियां
UI को अपडेट करने के लिए नियमित थ्रेड और हैंडलर का उपयोग करें।
उपयोग और IntentService, और या तो एक कॉलबैक का उपयोग करें या एक आशय के माध्यम से परिणाम प्रसारित।
Loaders का उपयोग करना।
मैं क्या समझ से, एक IntentService एक गतिविधि के जीवनचक्र से बंधा नहीं है, इसलिए उन्मुखीकरण में कोई भी परिवर्तन, आदि, डेटा की पुनर्प्राप्ति पर असर नहीं पड़ेगा। जहां यह एक AsyncTask या थ्रेड को किसी गतिविधि के भीतर निकाल दिया गया है, तो यह मामला नहीं है।
प्रश्न का कारण यह है कि मैंने हाल ही में Loaders
पढ़ा है, और मैं उनके आवेदन के रूप में उलझन में हूं। वे डेटा स्रोत से अधिक निकटता से जुड़े हुए प्रतीत होते हैं, जहां डेटा स्रोत बदलता है, तो "पारदर्शी रूप से" सब कुछ उचित तरीके से संभाला जाता है। Loaders
विन्यास/अभिविन्यास परिवर्तनों (मुझे विश्वास है) के प्रति सहिष्णु प्रतीत होता है।
मैं वर्तमान में रीस्टफुल सेवा कॉल करने के लिए एक इरादा सेवा का उपयोग कर रहा हूं, और परिणाम उचित गतिविधियों द्वारा प्राप्त किए जाने वाले परिणामों को प्रसारित कर रहा हूं।
मुझे लगता है कि मैं एक HTTP आधारित लोडर लिख सकता हूं, लेकिन मुझे यकीन नहीं है कि यह इस तंत्र का सबसे अच्छा उपयोग है या नहीं।
किसी अन्य पर एसिंक डेटा लोडिंग विधियों में से किसी एक का उपयोग करने के फायदे/नुकसान क्या हैं?
AsyncTaskLoader है अपने दोस्त http://www.vogella.de/articles/AndroidPerformance/article.html एक और उदाहरण http://stackoverflow.com/questions/8030102/कैसे-से-उपयोग-asynctask-with-xml-sax-parser –
@ सर्गीबेनर AsyncTaskLoader के बारे में जानना अच्छा है। मैं समझने की कोशिश कर रहा हूं कि मैं एक विधि का उपयोग क्यों करूँगा, लेकिन यह जानना बहुत अच्छा है। – Steve
http://developer.android.com/reference/android/os/AsyncTask.html से लिया गया AsyncTask UI थ्रेड के उचित और आसान उपयोग को सक्षम बनाता है। यह वर्ग पृष्ठभूमि संचालन करने और थ्रेड और/या हैंडलर में हेरफेर किए बिना यूआई थ्रेड पर परिणाम प्रकाशित करने की अनुमति देता है। –