1. 程式人生 > >Android監聽返回鍵、Menu鍵、Home鍵、

Android監聽返回鍵、Menu鍵、Home鍵、

back鍵

監聽back鍵還是很簡單的,有兩種方法:

  • 呼叫onBackPressed()方法:呼叫此方法會自動呼叫finish()。
@Override 
public void onBackPressed() { 
    statement //在按返回鍵時的操作
} 
  • 呼叫onKeyDown()方法:根據keyCode的值,做具體操作
 @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
             statement//具體操作
return false; // }else { return super.onKeyDown(keyCode, event); } }
注意!!!——>對於onKeyDown的返回值問題,需要謹慎處理。

Return true to prevent this event from being propagated further,
or false to indicate that you have not handled this event and it should continue to be propagated.

返回 true 是為了阻止這個事件被傳播;
返回 false 來表明你並沒有控制這個點選事件,事件繼續傳播;

menu鍵

  • 對Menu鍵的監聽,採用對back監聽的第二種方法。
 @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_MENU)) { 
             statement//具體操作
             return false; //
        }else { 
            return
super.onKeyDown(keyCode, event); } }

Home鍵

Home鍵的監聽是一個比較難處理的部分,也是出問題最多的部分。

由於沒有時間動手編寫程式碼測試,後期補上。這裡我只給出整體思路,附加幾篇有程式碼描述的文章供大家參考(這幾篇文章好像都有不全面的地方,對不同品牌的手機,處理方式有所差別)。

監聽Home鍵:

① 建立廣播接受者;

② 在Activity或者Service中 動態 註冊監聽;

③ 在Activity使用;

參考部落格: