2010-05-04 21 views
8

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

ACTION_SCREEN_OFF स्पष्ट रूप से दोनों मामलों में आग लगती है, और मुझे कोई अन्य इरादा नहीं मिला है जो मैं ढूंढ रहा हूं।

आपकी मदद के लिए धन्यवाद, निक

+0

यह क्या है क्या करने की कोशिश कर रहे हैं? सुनने के लिए एक और कार्रवाई हो सकती है। – CaseyB

+0

जब स्क्रीन का समय समाप्त हो जाता है, तो मैं एक साधारण गणना करने की कोशिश कर रहा हूं, लेकिन जब उपयोगकर्ता 'जबरन' करने के लिए पावर-बटन दबाता है तो स्क्रीन बंद नहीं होता है। एक "टाइमआउट" -एक्शन बहुत अच्छा होगा, लेकिन मुझे अभी तक कुछ भी समान नहीं मिला है। क्या यह पूछना संभव है कि लॉक-स्क्रीन चालू है (जो, मुझे विश्वास है, आमतौर पर तब होता है जब आप पावर बटन दबाते हैं, कम से कम एन 1 पर)? – Nick

+0

आप उस स्थिति में केवल ऐसा क्यों करना चाहते हैं? यदि आप * * * * * क्यों * समझाते हैं, तो शायद कोई आपको बेहतर समाधान सुझा सकता है। –

उत्तर

4

निचले स्तर पर स्क्रीन के समय होने पर एक ईवेंट हो रहा है, "एडीबी लॉगकैट" के साथ एक नज़र डालें और आप इसे देखेंगे, वहां से खोदें।

+0

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

0

आप एक KEYCODE_POWER कुंजीपटल घटना के लिए सुन सकते हैं? वह वही कर सकता है जो आप चाहते हैं। (लेकिन जिस क्रम में और ACTION_SCREEN_OFF पहुंचने की गारंटी नहीं दी जा सकती है)।

+0

हाय, उत्तर के लिए धन्यवाद! यह एक अच्छा विचार है, हालांकि मैंने अभी कोशिश की है और यह काम नहीं करता है, यह कुंजीकोड पकड़ना संभव नहीं लगता है: http://groups.google.com/group/android-developers/browse_thread/thread/8c858b7a8605791d/ 9120aa96dfb59d82? Lnk = raot इसके अलावा, मुझे उस कुंजी-ईवेंट सिस्टम-व्यापी को पंजीकृत करने की आवश्यकता होगी क्योंकि मैं एक सेवा का उपयोग कर रहा हूं, जो भी संभव नहीं है, मुझे लगता है: -/ लेकिन आपकी मदद के लिए धन्यवाद, यह एक है अच्छा विचार, अगर यह काम करता है, तो यह सही होगा :-)! – Nick

1

सेवाएं सीधे बटन ईवेंट को संभाल नहीं सकती हैं। शायद जब आप स्क्रीन बंद हो जाते हैं तो अधिसूचित होने के लिए आप अपनी गतिविधि को एक प्रसारण रिसीवर पंजीकृत कर सकते हैं, और उसके बाद गतिविधि को जांचने के लिए दबाए गए आखिरी कुंजी की जांच करें कि क्या यह पावर बटन था - यदि यह नहीं था तो आप एक भेज सकते हैं अपनी सेवा में प्रसारित करें और जो कुछ भी आप चाहते हैं उसे चलाएं।

1

एक मजेदार सवाल है कि :) हालांकि सही नहीं है, तो आप उपयोगकर्ता अंतिम स्पर्श घटना के बाद से और समय अपनी गतिविधि को रोकने के लिए चला जाता है के लिए समय नमूना लेने की कोशिश कर सकते हैं - और देखो अगर यह फिट बैठता है screen off timeout

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