2010-04-18 10 views
5

क्या उपयोगकर्ता होम बटन हिट करते समय सभी प्रारंभिक सेवाओं को रोकना संभव है?ऐप पर सभी प्रारंभ सेवाओं को बंद करें/बाहर निकलें

मैं का उपयोग करें:

startService(new Intent(ClassName.this, ClassName2.class)); 
stopService(new Intent(ClassName.this, ClassName2.class)); 

इसका मतलब यह है कि मैं किसी भी तरह मेरे ऐप कक्षाएं 7+ के लिए 'stopService()' जोड़ने के लिए मैं इस विषय पर गौर किया है और मुझे लगता है कि वहाँ होगा 'onTerminate' लेकिन अभी भी यह सुनिश्चित नहीं है कि इसे कैसे कार्यान्वित किया जाना चाहिए।

किसी भी मदद या संकेत की सराहना की जाएगी! धन्यवाद!

उत्तर

16

क्या यह संभव है सभी सेवाएं शुरू हुई जब उपयोगकर्ता होम बटन हिट को रोकने के लिए?

सीधे नहीं। शुरुआत करने वालों के लिए, आपके पास होम दबाए जाने का कोई तरीका नहीं है।

यदि आप केवल गतिविधियों को चलाने के दौरान चल रहे सेवा चाहते हैं, तो startService() से छुटकारा पाने पर विचार करें। इसके बजाय, सेवा की आवश्यकता वाले गतिविधियों के onStart() विधियों में bindService() का उपयोग करें, और unbindService() को उनके संबंधित onStop() विधियों में कॉल करें। जब आप आवश्यकता हो तो सेवा आलसी शुरू होने के लिए BIND_AUTO_CREATE का उपयोग कर सकते हैं, और सभी कनेक्शन अनबाउंड होने के बाद एंड्रॉइड स्वचालित रूप से सेवा को रोक देगा।

+0

प्रतिक्रिया के लिए धन्यवाद। यह सब समझ में आता है, एक बात हालांकि, "BIND_AUTO_CREATE" पर और जानकारी है? मैं 'सेवा' अवधारणा को समझता हूं, लेकिन फिर भी यह सुनिश्चित नहीं करता कि मैं अपने 7+ क्रियाकलापों के बीच संगीत कैसे खेलूँगा, लेकिन जब उपयोगकर्ता 'होम स्क्रीन' पर जाता है तो इसे रोकें। यदि किसी और के पास एक ही समस्या है, तो मुझे यहां एंड्रॉइड सेवाओं के बारे में एक अच्छा लेख मिला: http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/ –

+0

आपका वांछित पैटर्न को लागू करना मुश्किल होगा। यही कारण है कि अधिकांश संगीत खिलाड़ी आपके द्वारा किए जाने वाले कार्यों को नहीं करते हैं - वे विशेष रूप से * चाहते हैं * संगीत जब घर दबाता है, संगीत को रोकने के लिए ऐप पर तेज़ी से पहुंच के लिए अधिसूचना प्रदान करता है। वास्तव में, आपके लिए विशेष रूप से HOME के ​​लिए इस पैटर्न को लागू करना असंभव होगा। आप शायद इस पैटर्न को लागू कर सकते हैं कि "मेरी कोई भी गतिविधियां अग्रभूमि में नहीं हैं", इस बात का ध्वज रखकर कि आपकी कोई भी गतिविधियां अग्रभूमि में हैं या नहीं, और एक घड़ी जो संगीत को बंद कर देती है अगर ध्वज बहुत लंबे समय तक झूठी है। – CommonsWare

+0

हाँ, यह सिर्फ एक खेल के लिए है, इसलिए जब खेल निलंबित/रोका जाता है तो संगीत नहीं खेलेंगे। मैंने देखा कि अगर मैं 'होम' दबाता हूं तो मैं इसे रोकने के लिए रोक सकता हूं (लेकिन एकमात्र समस्या यह है कि जब मैं गेम मेनू में आगे बढ़ता हूं तो यह बंद हो जाता है। इस मुद्दे को हल करने के लिए कोई संकेत? –

2

यदि आप अपने ऐप को छोड़ते समय बंद करना चाहते हैं, तो मैं पूछूंगा कि क्या आप सेवाओं का उपयोग करना चाहते हैं। आप बस अपने आवेदन के तरीके की तुलना में अधिक जटिल बना सकते हैं।

इसके अलावा, इस लाइन वास्तव में संदिग्ध है:

 
startService(new Intent(ClassName.this, ClassName2.class)); 

आप एक आशय जिसका कार्रवाई एक वर्ग के वर्ग के नाम है, और डेटा यूआरआई अन्य वर्ग की वर्ग के नाम है कर रहे हैं ...! शायद आपका मतलब "नया इरादा (संदर्भ, MyService.class)" जैसा है?

+0

आपके इनपुट के लिए धन्यवाद, मैं बस अपने ऐप में संगीत चलाने की कोशिश कर रहा हूं। मेरे पास इसे बंद करने के लिए संगीत/ध्वनि सेटिंग्स भी हैं। मैं "नया इरादा" भाग भी ठीक कर दूंगा। –

+0

ठीक है। हालांकि, संगीत चलाने के लिए आपको किसी सेवा की आवश्यकता नहीं है। – hackbod

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