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); }