2015-03-25 80 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); 
    } 
};