當我和世界不一樣 那就讓我不一樣

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) 人氣()


留言列表 (1)

發表留言
  • 訪客
  • 不好意思 請問一下 我有用了以上的方法,但是為何都無法跳至前一頁連覽過的,我是用webview 裡有按鈕按下去是另外一個html 按下返回鍵,會跳至手機頁面@@

    是哪裡沒注意到嗎><
  • 這裡說的返回鍵是htc上面的實體按鍵
    另外我是用2.2的版本
    也許4.0有改變作法也不一定

    Klv 於 2013/02/24 15:41 回覆