2012-01-25 23 views
6

मेरे पास एक मीडिया प्लेयर है जो उपयोगकर्ता को ऐप बंद करता है, या तो बैक बटन का उपयोग करके या बस एक और ऐप खोलकर, ऐप बंद कर देता है। इस व्यवहार को पाने के लिए, मैंने अपनी मुख्य गतिविधि में onStop() जोड़ा जो संगीत चलाने से रोकने के लिए मेरे MediaPlayer (जो एक सेवा में है) बताता है।जांचें कि ऑनसाइट को उपयोगकर्ता इंटरैक्शन से कहा जाता है, या स्क्रीन डमीिंग

हालांकि, जब भी स्क्रीन मंद हो जाती है, तो स्क्रीन को बंद करने के लिए, या केवल स्क्रीन ऑटो डिमिंग द्वारा, मैं संगीत को खेलना जारी रखना चाहता हूं।

अभी जब खिलाड़ी स्क्रीन मंद हो जाता है तो खिलाड़ी भी खेलना बंद कर देता है, जिसका अर्थ है कि ऑनस्टॉप() विधि को तब भी बुलाया जाता है।

मैं कैसे जांच सकता हूं कि स्क्रीन पर ऑनस्टॉप() को कॉल किया जाता है या नहीं?

मैंने पहले से ही PARTIAL_WAKELOCK को MediaPlayer ऑब्जेक्ट पर लागू किया है, जो कि मेरे सबसे अच्छे ज्ञान के लिए, स्क्रीन के बंद होने के बाद खिलाड़ी को चलना संभव बनाना चाहिए।

क्या मुझे अपनी मुख्य गतिविधि में आंशिक वाकेलॉक जोड़ने की ज़रूरत है?


बस दोनों अपने मुख्य गतिविधि के लिए एक PARTIAL_WAKELOCK, साथ ही मेरी मीडिया प्लेयर आवेदन किया। अभी, स्क्रीन अब और बंद नहीं होती है, और जब उपयोगकर्ता पावर बटन दबाता है तो संगीत अभी भी बंद हो जाता है।

जाहिर है, यह काम नहीं करता जैसा मैंने सोचा था।

क्या मैं जिस व्यवहार को ढूंढ रहा हूं उसे प्राप्त करने का कोई तरीका है?

+0

'निजी बुलियन बंद करने के बारे में क्या है 'यूयूयूटर = झूठी;' आपकी गतिविधि में फ़ील्ड, इसे 'ऑनस्टार्ट()' में 'झूठी' पर सेट करें, 'सच्चे' पर 'बैकप्रेस()' और 'ऑन यूसर लाइवहिंट()' और 'जांच' यह 'ऑनस्टॉप()' में मूल्य है? – Vladimir

+0

यह बिल्कुल बुरा विचार नहीं है! मैं इसे –

+0

कोशिश करूँगा ओह, यह वास्तव में काम करता है! कृपया अपनी टिप्पणी को उत्तर के रूप में छोड़ दें ताकि मैं भविष्य के खोजकर्ताओं के लिए इसे स्वीकार कर सकूं। –

उत्तर

3

आप onBackPressed() और onUserLeaveHint() में अपनी गतिविधि को

private boolean stoppedByUser = false; 

क्षेत्र में जोड़ सकते हैं, onStart() में false के लिए सेट, true के लिए और इसे onStop() विधि में मूल्य है की जाँच करें।