मैं एक एसडीपी का उपयोग कर एक एसआईपी आवेदन लिख रहा हूँ। मेरे आवेदन में कई गतिविधियां हैं और इसलिए मैं सेवा की ऑनक्रेट और ऑनस्ट्रोय विधियों का उपयोग करके एसडीके को प्रारंभ और बंद कर देता हूं ताकि मैं इसे अपने आवेदन की अवधि (केवल एक व्यक्तिगत गतिविधि) के लिए चला सकूं।मैं इसे पुनरारंभ किए बिना गतिविधियों के बीच एक सेवा कैसे साझा कर सकता हूं?
उदाहरण एप्लिकेशन मैं कॉल से काम कर रहा हूं स्टार्ट सेवा और फिर बस सेवा को रिसाव करता है - मैं यह नहीं करना चाहता लेकिन मुझे यकीन नहीं है कि मेरे पास कोई विकल्प है।
क्या मैं की तरह करने के लिए होगा मेरे गतिविधि आधार वर्ग के OnCreate विधि में Context.BIND_AUTO_CREATE का उपयोग करके सेवा बाँध और OnDestroy में निकल। मेरी सभी गतिविधियां इस से बढ़ती हैं, इसलिए मेरे पास मेरी सभी गतिविधियों में सेवा उपलब्ध होगी।
लेकिन, जब कॉन्फ़िगरेशन में परिवर्तन होता है या मैं गतिविधियों को स्विच करता हूं तो क्या होता है? क्या की संक्षिप्त अवधि गतिविधियों के बीच सेवा आक्रामक रूप से मारे जाती है, या क्या यह गारंटी है कि यह नहीं होगा? यदि यह पूर्व है, तो क्या यह सेवाओं के उपयोग को थोड़ा अपंग नहीं करता है? बिल्कुल मेरे आवेदन के जीवनकाल के लिए कुछ जारी रखने के लिए मुझे किस डिज़ाइन पैटर्न का उपयोग करना चाहिए?
और मैं आपके द्वारा सुझाए गए तरीके से स्टॉप सेवा को कैसे कॉल करूं? एप्लिकेशन बंद होने का पता लगाने का कोई तरीका नहीं है, अगर मुझे सेवा की आवश्यकता नहीं है, तो मैं इसे एप्लिकेशन में रखूंगा! – pjcard
और मैं कहता हूं "हाँ", रास्ता है। एप्लिकेशन लाइफसाइक्सेस प्राप्त करने के लिए, आपको एक कस्टम एप्लिकेशन क्लास एप्लिकेशन को विस्तारित करने और इसे पंजीकृत करने की आवश्यकता है। मैं जवाब में इसके बारे में उल्लेख करना भूल गया।और हां, आपको किसी सेवा की आवश्यकता नहीं हो सकती है क्योंकि आप इसे ऐप लाइफसाइकिल तक सीमित कर रहे हैं। रेटो मेयर द्वारा यहां जवाब देखें: http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android – Akhil
क्षमा करें अखिल, यह अभी भी सही नहीं है। मेरे पास पहले से ही एक कस्टम एप्लिकेशन क्लास है लेकिन इसमें बाहर निकलने वाले एप्लिकेशन का पता लगाने के लिए कोई तरीका नहीं है। इस सवाल पर मेरा "अतिरिक्त" अनुभाग देखें कि यह क्यों है। – pjcard