2015-03-25 59 views
0

我有一个音乐应用程序MediaPayerMediaController当音乐播放和我打回按钮不能让活动退出。 我从源代码中发现MediaControllerMediaController#dispatchKeyEvent()中捕获KeyEvent.KEYCODE_BACK。所以我通过添加以下代码覆盖该方法:MediaController返回按钮不起作用

if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { 
    return false; 
} 
return super.dispatchKeyEvent(event); 

但它仍然没有运气。

+0

要停止从您的应用程序的音乐播放和退出,当返回按钮被按下吗? – Giridharan 2015-03-25 06:26:25

+0

@Giridharan,是的。媒体播放器正在运行。所以当我退出活动时,音乐仍然可以播放。我只是很困惑,为什么不能在覆盖MediaController后正常工作#dispatchKeyEvnt() – walker 2015-03-25 06:42:44

+0

然后只需添加finish()它将关闭所有内容。 – Giridharan 2015-03-25 07:03:03

回答

0

您还可以覆盖隐藏()方法来显示的MediaController对于每次都是这样:

mediaController = new MediaController(this){ 
    @Override 
    public void hide() { 
     //do Nothing 
    }  

    //Handle BACK button 
    @Override 
    public boolean dispatchKeyEvent(KeyEvent event) { 
     if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){ 
      super.hide();//Hide mediaController 
      finish();//Close this activity 
      return true;//If press Back button, finish here 
     } 
     //If not Back button, other button (volume) work as usual. 
     return super.dispatchKeyEvent(event); 
    } 
};