android - 覆盖后退按钮导致音量按钮停止工作

ava*_*fab 0 android android-button android-mediaplayer android-event android-activity

我正在尝试覆盖后退按钮以停止音频播放器并关闭媒体播放器活动,但我注意到音量按钮不再起作用。我想覆盖代码存在错误。附注。在我的MediaControllerI overridehide()方法中,始终显示控件。

mediaController = new MediaController(this)

{
    @Override
    public void hide() {
        // TODO Auto-generated method stub
        //do nothing
    }


    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {

        if(event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

            if (mediaPlayer != null) {
                mediaPlayer.reset();
                mediaPlayer.release();
                mediaPlayer = null;

            }
            super.hide();

            Activity a = (Activity)getContext();
            a.finish();

        }
        return true;
    }
};
Run Code Online (Sandbox Code Playgroud)

Beh*_*nam 5

您的问题出在 dispatchKeyEvent() 中:

您正在使用return true所有硬件键,这会阻止所有键响应,

而你应该使用

return super.dispatchKeyEvent(event);
Run Code Online (Sandbox Code Playgroud)

对于后退键以外的键。

所以你的代码应该是这样的:

@Override
    public boolean dispatchKeyEvent(KeyEvent event) {
    if(event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

        if (mediaPlayer != null) {
            mediaPlayer.reset();
            mediaPlayer.release();
            mediaPlayer = null;
        } 

        finish();
        return true;
    }
    **return super.dispatchKeyEvent(event);**
}
Run Code Online (Sandbox Code Playgroud)