एक सामान्य परिदृश्य की कल्पना करें जहां एक गतिविधि खुलती है, कुछ सामग्री प्राप्त करने के लिए एक आरईटीटी HTTP एपीआई को कॉल करने की आवश्यकता होती है, और एक बार यूआई अपडेट किया जाता है। जाहिर है कि एपीआई कॉल को एक अलग थ्रेड पर करने की ज़रूरत है, लेकिन इसे AsyncTask, एक IntentService, या किसी अन्य दृष्टिकोण का उपयोग करके किया जाना चाहिए, और क्यों?एक इंटेंट सेवा या AsyncTask से एक आरईएसटी एपीआई कॉल करें?
उत्तर
this post में वर्णित अनुसार, IntentService
और ResultReceiver
के संयोजन की अनुशंसा करता हूं।
इसके अलावा Google iosched पर एक नज़र डालें जो इस मॉडल को लागू करता है। 2010 संस्करण दिखाता है कि onRetainNonConfigurationInstance
, getLastNonConfigurationInstance
और एक स्थिर वर्ग का उपयोग कर कॉन्फ़िगरेशन परिवर्तनों (यानी स्क्रीन रोटेशन) के पार ResultReceiver
को कैसे बनाए रखें।
मैंने इस मॉडल को सफलतापूर्वक एप्लिकेशन में कार्यान्वित किया है। अगर आपको दिए गए लिंक के साथ कोई समस्या है तो मुझे बताएं।
संपादित करें: मैं "क्यों" प्रश्न भूल गया;)
AsyncTask
tighly गतिविधि के लिए बाध्य है और यह अच्छी तरह विन्यास बदलाव संभाल नहीं होंगे। गतिविधि जीवन के भीतर छोटे कार्यों के लिए यह ठीक है (onResume
और के बीच)। मैं HttpClient
का उपयोग अपने आरईएसटी एपीआई कॉल के लिए कनेक्शन टाइमआउट और सॉकेट टाइमआउट 20 के सेट (खराब मोबाइल नेटवर्क के कारण ...) के साथ कर रहा हूं। इसका मतलब है कि एपीआई कॉल 40 के दशक तक चल सकता है। आप निश्चित रूप से AsyncTask
की बजाय किसी सेवा में ऐसे लंबे कार्य को संभालना चाहते हैं।
- 1. एंड्रॉइड से एक webservice से कनेक्ट - AsyncTask या सेवा?
- 2. एक आरईएसटी एपीआई
- 3. एक आरईएसटी एपीआई
- 4. एक आरईएसटी एपीआई
- 5. एक आरईएसटी एपीआई
- 6. एक आरईएसटी एपीआई
- 7. एक आरईएसटी एपीआई
- 8. एक आरईएसटी एपीआई कैसे लिखें?
- 9. एक इंटेंट सेट
- 10. किसी इंटेंट सेवा
- 11. एक इंटेंट सेवा और सेवा के बीच क्या अंतर है?
- 12. रूबी में एक आरईएसटी एपीआई
- 13. एक लंबित इंटेंट
- 14. आरईएसटी एपीआई
- 15. आरईएसटी कॉल
- 16. एक AsyncTask
- 17. आरईएसटी सेवा के लिए jQuery AJAX कॉल
- 18. आरईएसटी एपीआई
- 19. पोर्टेबल क्लास लाइब्रेरी से आरईएसटी सेवाओं को कैसे कॉल करें?
- 20. फेसबुक के आरईएसटी एपीआई कॉल का उपयोग कैसे करें "LiveMessage.Send"
- 21. आरईएसटी सेवा
- 22. आरईएसटी एपीआई
- 23. आरईएसटी एपीआई
- 24. Google क्रोम से आरईएसटी कॉल कैसे करें
- 25. मोबाइल एप्लिकेशन के लिए एक आरईएसटी एपीआई कैसे सुरक्षित करें?
- 26. आरईएसटी एपीआई
- 27. एक आरईएसटी सेवा के सामने अनुरोध कतार
- 28. आरएमआई बनाम आरईएसटी सेवा
- 29. एम्बर.जेएस और आरईएसटी एपीआई
- 30. LIKE मानदंडों के साथ एक आरईएसटी एपीआई कैसे डिजाइन करें?
मेरे पास @ हेलॉयय के लिए एक प्रश्न है, तो फिर मैं इंटेंट सेवा को ऑनर्यूसम(), ऑनस्टार्ट(), या ऑनक्लिकएवेंट लिस्टनर() कब शुरू करूंगा क्योंकि मुझे ऑफ़लाइन उपयोग के लिए साझाप्रेफ़रेंस का उपयोग करके स्थानीय रूप से सहेजने की आवश्यकता है। उदाहरण के लिए कहें मुझे वेबसाइट सेवा (डब्ल्यूसीएफ वेब एपीआई) का उपयोग कर सर्वर से यूआई में 200 छात्रों को सूचीबद्ध करने की आवश्यकता है, तो मैं कोड की इस पंक्ति को कहां रखूंगा // // प्रारंभ इरादा सेवा // रन इरादा सेवा // इरादा डाउनलोड इंटेंन्ट = नया इरादा (यह। कॉन्टैक्ट, टाइपऑफ (StudentIntentService)); //this.Context.StartService (downloadIntent); ' –