Android BackボタンとMenuボタンの共存

Androidでは,Menuボタンを押してMenuを表示させたいとき,

    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return true;
    }




    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.hoge:
            // hogeを選択したときの処理
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


をActivityに記述すれば,Menuボタンを押したときにMenuが表示されるが,1つ前の記事で書いたようなBackボタンのイベントを拾うと,Menuボタンを押したときにelseに入ってしまうため,Menuボタンが無効化されてしまう。
BackもMenuも拾いたいときには上の2つを書いた上で次のように書こう!

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) { // Backボタンが押されたら
            // Backボタンを押したときの処理
        }else if (keyCode == KeyEvent.KEYCODE_MENU) { // Menuボタンが押されたら
            openOptionsMenu();  // これによりMenuが表示される
        }
        return true;
    }