2017-04-27 91 views
0

首先我在活動中做了onBackPressed的Override。我可以用這種方法正確地捕獲後退按鈕按下的事件。後來,爲了檢測音量按鈕的按下和釋放動作,我實現了onKeyDown和onKeyUp方法。然後我發現無論從onKeyDown和onKeyUp返回true還是false,onBackPressed方法都不會被觸發。有誰知道如何使onBackPressed和onKeyDown,OnkeyUp全部被調用?任何幫助非常感謝!onKeyDown和onKeyUp會阻止onBackPressed

+0

看[dispatchKeyEvent(http://stackoverflow.com/a/2875006/2298490) 我想你忘記了添加 '默認的這個例子: return super.dispatchKeyEvent(event); ' – grill2010

+0

你是完全正確的。 dispatchKeyEvent修復了我的問題。我以前默認返回的是super.onKeyUp(keyCode,event)和onKeyDown(keyCode,event),它們不會將事件傳遞給onBackPressed方法。 – user1870797

+0

我認爲你可以在回答區發佈你的答案,所以我可以將它作爲我接受的答案來打勾。 – user1870797

回答

1

正如我在評論中已經說過的,這是因爲您忘記了在dispatchKeyEvent方法中添加default: return super.dispatchKeyEvent(event);

爲了更好的澄清只是看dispatchKeyEvent

相關問題