检测Android中的主页按钮按下
这已经让我发疯了一段时间。 有什么方法可以可靠地检测到是否已在Android应用程序中按下了主页按钮? 失败的话,是否有一种健壮的方法来告诉导致活动进入onPause的原因?即我们是否可以检测到它是由启动新活动还是按回车/主页引起的。 我看到的一个建议是重写onPause()并调用isFinishing(),但是当按下主屏幕按钮时,它将返回false,就像启动新活动一样,因此无法区分两者。 任何帮助,不胜感激。 **更新**:感谢@ android-hungry提供此链接: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); 因此,似乎与普遍看法相反,实际上您可以侦听Home键。令人担忧的是,您可以返回false并让home键不执行任何操作。 更新:符合预期,这会有一些副作用-启用此模式后,嵌入的视频和Google地图似乎不可见。 更新:据说此hack从Android 4.0起不再起作用