我試圖覆蓋後面按鍵的功能。當用戶按下它一次時,我希望它回到上一個屏幕。但是,當後退鍵被長時間按下時(比如說,兩秒或更長時間),我想退出應用程序。如何區分長按鍵和常規按鍵?
到現在爲止,我已經在我的活動重寫這兩個方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {
//manage short keypress
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {
//manage long keypress (different code than short one)
return true;
}
return super.onKeyLongPress(keyCode, event);
}
但onKeyLongPress
回調不會被調用,因爲事件總是由onKeyDown
方法來接收。
有沒有任何方法使這兩種方法的工作?還是要在onKeyDown
中完成所有操作,並使用重複次數/毫秒來檢測它?
乾草檢查此鏈接[KeyEvent的DOC(http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown%28int,%20android。 view.KeyEvent%29) –