स्वीकृत उत्तर में अंक जोड़ना:
Android API के भीतर IntentService का उपयोग देखें। उदाहरण के लिए:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) { ...}
अपने ऐप के लिए एक इंटेंससेवाइन घटक बनाने के लिए, एक वर्ग को परिभाषित करें जो IntentService को बढ़ाता है, और इसके भीतर, ऑनहैंडलइंटेंट () को ओवरराइड करने वाली विधि को परिभाषित करें।
इसके अलावा, IntentService का स्रोत कोड देखें, यह onStartCommand की तरह कंस्ट्रक्टर और लाइफ साइकल मेथड है ...
@Override
public int More ...onStartCommand(Intent intent, int flags, int startId) {
onStart(intent, startId);
return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY;
}
एक साथ एक AsyncTask के साथ सेवा कई उपयोग के मामलों के लिए सर्वश्रेष्ठ दृष्टिकोणों में से एक है जहां पेलोड बहुत बड़ा नहीं है। या सिर्फ एक वर्ग बनाने के लिए IntentSerivce का विस्तार। एंड्रॉइड वर्जन 4.0 से सभी नेटवर्क ऑपरेशन बैकग्राउंड प्रोसेस में होने चाहिए अन्यथा एप्लिकेशन कंपाइल / बिल्ड फेल हो जाता है। UI से अलग थ्रेड। AsyncTask वर्ग UI थ्रेड से एक नए कार्य को फायर करने के सबसे सरल तरीकों में से एक प्रदान करता है। इस विषय पर अधिक चर्चा के लिए, ब्लॉग पोस्ट देखें
से एंड्रॉयड डेवलपर्स गाइड :
IntentService सेवाओं का एक आधार वर्ग है जो मांग पर अतुल्यकालिक अनुरोधों (इरादों के रूप में व्यक्त) को संभालता है। ग्राहक startService (इरादे) कॉल के माध्यम से अनुरोध भेजते हैं; सेवा को आवश्यकतानुसार शुरू किया जाता है, प्रत्येक इंटेंट को संभालता है, बदले में, एक कार्यकर्ता धागे का उपयोग करता है, और जब यह काम से बाहर हो जाता है तो खुद को रोक देता है।
IntentService में प्रयुक्त डिज़ाइन पैटर्न
: यह "काम कतार प्रोसेसर" पैटर्न आमतौर पर एक आवेदन के मुख्य धागे से कार्यों को लोड करने के लिए उपयोग किया जाता है। इस पैटर्न को सरल बनाने और यांत्रिकी की देखभाल करने के लिए इंटेंससेवा वर्ग मौजूद है। इसका उपयोग करने के लिए, IntentService का विस्तार करें और onHandleIntent (इरादे) को लागू करें। IntentService को इंटेंट्स प्राप्त होंगे, एक वर्कर थ्रेड लॉन्च करेंगे, और उचित रूप से सेवा को रोकेंगे।
सभी अनुरोधों को एक ही श्रमिक धागे पर नियंत्रित किया जाता है - वे आवश्यक रूप से लंबे समय तक ले सकते हैं (और एप्लिकेशन के मुख्य लूप को ब्लॉक नहीं करेंगे), लेकिन एक समय में केवल एक अनुरोध पर कार्रवाई की जाएगी।
IntentService वर्ग एक सिंगल बैकग्राउंड थ्रेड पर एक ऑपरेशन चलाने के लिए एक सीधी संरचना प्रदान करता है। यह आपके उपयोगकर्ता इंटरफ़ेस की जवाबदेही को प्रभावित किए बिना लंबे समय तक चलने वाले संचालन को संभालने की अनुमति देता है। साथ ही, अधिकांश उपयोगकर्ता इंटरफ़ेस जीवनचक्र घटनाओं से एक इरादे से प्रभावित नहीं होता है, इसलिए यह उन परिस्थितियों में चलता रहता है जो एक AsyncTask को बंद कर देगा।
एक इरादे की कुछ सीमाएँ हैं:
यह सीधे आपके यूजर इंटरफेस के साथ बातचीत नहीं कर सकता है। UI में इसके परिणाम डालने के लिए, आपको उन्हें एक गतिविधि पर भेजना होगा। कार्य अनुरोध क्रमिक रूप से चलते हैं। यदि कोई ऑपरेशन IntentService में चल रहा है, और आप इसे एक और अनुरोध भेजते हैं, तो अनुरोध पहले ऑपरेशन के समाप्त होने तक प्रतीक्षा करता है। IntentService पर चल रहा एक ऑपरेशन बाधित नहीं किया जा सकता है। हालांकि, ज्यादातर मामलों में
IntentService सरल पृष्ठभूमि संचालन का पसंदीदा तरीका है
**
वॉली लाइब्रेरी
एंड्रॉइड नेटवर्किंग एप्लिकेशन विकसित करने के लिए वॉली- लाइब्रेरी नामक पुस्तकालय
है। गीथहब में जनता के लिए स्रोत कोड उपलब्ध है।
पृष्ठभूमि नौकरियों के लिए सर्वोत्तम प्रथाओं के लिए Android आधिकारिक दस्तावेज : इरादे सेवा, धागा, हैंडलर, सेवा पर बेहतर समझने में मदद करता है। और नेटवर्क संचालन भी कर रहा है
IntentService is used for short tasks (etc) and a service is for long ones
तुमने ऐसा कहां पढ़ा ?