2012-01-03 12 views
7

क्या कोई मुझे बता सकता है कि एंड्रॉइड में intentservice को कैसे रोकें?एंड्रॉइड में इरादों को कैसे रोकें?

अगर मैं stopservice का उपयोग एक intentservice को रोकने के लिए, यह काम नहीं करता।

मैं वेबसाइट ब्राउज़ किया है, लेकिन कोई भी इस सवाल का एक स्पष्ट उत्तर नहीं दिया है।

उत्तर

5

सेवा के भीतर से stopSelf() कॉल करके देखें। documentation कहता है कि कुछ प्रक्रियाओं को पूरा करने में लंबा समय लग सकता है, इसलिए आपकी सेवा सबसे अधिक संभावना है कि वे रुकें। आपको शायद उसमें देखना चाहिए। एक बार सभी अनुरोध पूर्ण होने के बाद, सेवा स्वयं बंद हो जाती है।

+0

मैं इसे एक गतिविधि से नहीं रोक सकते हैं? – user1127497

+1

जैसे मैंने कहा, अगर 'स्टॉप सेवा' मदद नहीं करता है, तो एक प्रक्रिया इसे गले लगा रही है। 'संरक्षित सार शून्य onHandleIntent (आशय आशय) के बाद से: एपीआई स्तर 3 इस विधि पर कार्रवाई करने के अनुरोध के साथ कार्यकर्ता धागे पर शुरू हो जाती है। एक समय में केवल एक ही उद्देश्य संसाधित किया जाता है, लेकिन प्रसंस्करण एक कार्यकर्ता थ्रेड पर होता है जो अन्य अनुप्रयोग तर्क से स्वतंत्र रूप से चलता है। इसलिए, यदि इस कोड में काफी समय लगता है, तो यह उसी इरादे से अन्य अनुरोधों को रोक देगा, लेकिन यह किसी और चीज को नहीं रखेगा। जब सभी अनुरोधों को संभाला जाता है, तो IntentService स्वयं बंद हो जाता है, इसलिए आपको StopSelf() को कॉल नहीं करना चाहिए। ' –

+2

क्या आपका मतलब है अगर मैं स्टॉप सेवा को कॉल करता हूं, तो एक इरादा intentservice को भेजा जाएगा। यदि इरादों के पास कतार पर पहले से ही कई इरादे हैं, तो "स्टॉप सर्विस इरादा" तब तक संभाल नहीं पाएगा जब तक कि उन उद्देश्यों को संभाला नहीं जाता है? – user1127497

5

IntentServiceonHandleIntent(Intent) द्वारा अंतिम उद्देश्य को संभालने के लिए स्वयं को रोकने के लिए बनाया गया है - यानी आपको इसे रोकने की आवश्यकता नहीं है, यह होने पर इसे स्वयं रोक देता है।

1

documentation एंड्रॉयड के अनुसार सेवा बंद होने के बाद सब शुरू अनुरोधों को संभाला कर दिया है, ताकि आप stopSelf कॉल करने के लिए की आवश्यकता नहीं है()।

1

किसी के पास एक ही समस्या होने पर बेले गए उत्तर। आप <yourContext>.stopService(intent) को कॉल करते हैं जहां intentही मंशा वस्तु आप तो यह काम करेंगे सेवा शुरू करने के लिए प्रयोग किया जाता है।

1

एक IntentService तो आप करने की आवश्यकता नहीं है, के बाद शुरू के सभी अनुरोधों नियंत्रित किया जाता है खुद को रोकने के लिए केवल जब सभी अनुरोधों को काम कतार में वर्तमान डॉक्स प्रति handled.As किया गया है डिज़ाइन किया गया है, IntentService वर्ग "सेवा बंद कर देता है फोन stopSelf() "

संबंधित मुद्दे