Override  boolean onKeyDown(int keyCode, KeyEvent event)

用if判斷式確定按下的鍵是返回

定義自己要做的事情以後

在最後回傳true即可

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
    // do something on back.
    moveTaskToBack(true);
    return true;
  }

  return super.onKeyDown(keyCode, event);
}

 

KeyEvent裡面定義各種按鈕的虛擬碼

只要更改KeyEvent.KEYCODE_BACK這個變數

比如說 KeyEvent.KEYCODE_HOME

即可自定義按下home的動作

要改其他的就以此類推

 

值得注意的是

網路上很多code

最後是 return true

但是我自己使用時

卻無法正常如期覆寫返回鍵功能

必須

return super.onKeyDown(keyCode, event);

才能達成目的

原因不明~

 

p.s

原本android預設最後一個Activity按下返回

會中止app

moveTaskToBack(true);

則會將app放到系統的stack中

而不是結束程式

創作者介紹
創作者 Klv 的頭像
Klv

值得嗎?

Klv 發表在 痞客邦 留言(1) 人氣()