android项目中的返回键有时处理不当,会是一个十分麻烦的问题。
在监听物理键时,可以用onKeyDown方法,Activity已经自己有KeyEvent.Callback这个接口了,因为项目有使用Fragment,Fragment没有这个接口,事实上,即使你自己implements了KeyEvent.Callback,它自己也不会调用(暂时不知道为什么)。但是FragmentActivity是有这个接口的,所以我们只要在Activity中实现相关逻辑即可。如果你需要在特定的Fragment监听的话可以结合使用FragmentManager.getBackStackEntryCount()。
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复 //do something here return true; } return super.onKeyDown(keyCode, event); }