यह कुछ समय से मुझे पागल कर रहा है।
अगर किसी एंड्रॉइड एप्लिकेशन में होम बटन दबाया गया है तो क्या विश्वसनीय तरीके से पता लगाया जा सकता है?
असफल होना, क्या यह बताने का एक मजबूत तरीका है कि किस गतिविधि के कारण ऑनपॉज़ में जाना है? यानी क्या हम यह पता लगा सकते हैं कि यह एक नई गतिविधि शुरू करने या वापस / घर दबाने के कारण हुआ।
एक सुझाव जो मैंने देखा है वह ऑनपॉइंट () को ओवरराइड करना है और कॉल फ़िनिशिंग () है, लेकिन होम बटन को दबाते समय यह गलत हो जाएगा जैसे कि अगर कोई नई गतिविधि शुरू हो रही है तो यह दोनों के बीच अंतर करने में विफल रहता है।
किसी भी मदद की बहुत सराहना की।
** अद्यतन **: इस लिंक के लिए @ android- भूखा धन्यवाद: https://nishandroid.blogspot.com/
निम्नलिखित विधि पर काबू पाने:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
फिर होम बटन प्रेस के लिए निम्नलिखित घटना को निकाल दिया जाएगा:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
//The Code Want to Perform.
}
});
मुझे यकीन नहीं है कि इस लाइन के साथ कोई दुष्प्रभाव हैं:
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
तो ऐसा लगता है कि लोकप्रिय विश्वास के विपरीत, आप वास्तव में घर की चाबी के लिए सुन सकते हैं। चिंताजनक रूप से, आप झूठे वापस कर सकते हैं और घर की चाबी कुछ भी नहीं है।
अद्यतन : जैसा कि अपेक्षित था, इसके साथ कुछ पक्ष प्रभावित होते हैं - ऐसा लगता है कि एम्बेडेड वीडियो और Google मानचित्र इस मोड के सक्षम होने के साथ दिखाई नहीं देते हैं।
अपडेट : माना जाता है कि यह हैक अब एंड्रॉइड 4.0 के बाद काम नहीं करता है
Activity.onUserLeaveHint()
।