2012-11-29 47 views
1

我知道我无法像使用后退按钮一样覆盖主页按钮。但是,如果按下主页按钮,android系统能否触发事件?如果用户按下主页按钮,我想捕获此操作以显示警告消息。我看着几个选项,最明显的一个,对于初学者会覆盖home键当用户按下主页按钮时通知

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_HOME) { 
     // action goes here 
    } else { 
     return super.onKeyDown(keyCode, event); 
    } 
} 

但这并不工作,我完全地意识到这一点。

当前的Activity完成后,将会调用onPause方法。当用户在我的应用程序中更改Activity时,也会调用此方法。那么无论如何,当他按下主页按钮时,我可以向用户显示一个通知框?

在此先感谢

+0

http://stackoverflow.com/questions/10869814/how-to-handle-home-button-in-android/13031697#13031697 – MKJParekh

回答

2

实际上,这是不可能赶上别人一样home键按下事件,这是为了保护用户的特征。

但是有一个黑客您的具体情况:

@Override 
public void onAttachedToWindow() 
{ 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);  
    super.onAttachedToWindow(); 
} 

onAttachedToWindow

视图连接到窗口

你可能这就是所谓的阅读Activity Lifecycle这是怎么回事k工作。

此外,here is the evidence它显示此方法的工作原理。

2
@Override 
    protected void onUserLeaveHint() { 
     // TODO Auto-generated method stub 
     super.onUserLeaveHint(); 
    } 

这也可以帮助

相关问题