2011-11-26 17 views
59

ऐसी कुछ स्थितियां हैं जहां मेरी सेवा को शुरू करने का प्रयास किया जा सकता था जब यह नहीं होना चाहिए। onStartCommand() विधि के अंदर stopSelf() पर कॉल करने के लिए इस तरह के मामलों में यह खराब फॉर्म है? यदि ऐसा है तो ऐसी स्थिति को संभालने का सबसे अच्छा तरीका क्या है? किसी भी संसाधन की सराहना की जाएगी।क्या मैं service.onStartCommand में stopSelf() को कॉल कर सकता हूं?

उत्तर

73

क्या ऑनस्टार्ट कमांड() विधि के अंदर stopSelf() को कॉल करने के लिए यह खराब रूप है?

मेरे सिर के ऊपर से, मैं नहीं सोच सकता कि यह एक समस्या क्यों होगी।

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

+2

मुझे लगा कि यह नहीं था, लेकिन मुझे सेवा वर्ग की आंतरिक कार्यप्रणाली के बारे में पूरी तरह से यकीन नहीं था और एक ऐसा फ़ंक्शन कॉल करना जो इसे शुरू करने से पहले इसे शुरू करने से रोकता है, कुछ प्रारंभिक घटना समाप्त होती है जैसे ऐसा लगता है कि यह कुछ अनचाहे व्यवहार के आधार पर हो सकता है यह कैसे डिजाइन किया गया था पर। –

+8

@SpencerRuport: 'StopSelf() ', एंड्रॉइड में बहुत सी चीजों की तरह, इसका कोई तत्काल प्रभाव नहीं पड़ता है। यह मुख्य अनुप्रयोग धागे द्वारा संसाधित संदेश कतार पर एक संदेश डालता है। सेवा को रोकने का वास्तविक कार्य तब तक शुरू नहीं होगा जब तक कि ऑनस्टार्ट कमांड() 'वापस नहीं आ गया है। – CommonsWare

+3

फॉलो-अप प्रश्न के रूप में, उचित वापसी मूल्य क्या होगा जिसे 'स्टॉपसेल्फ()' कहा जाता है? –

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

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