簡體   English   中英

當您單擊返回首頁或最近的應用程序退出應用程序時,如何暫停媒體播放器?

[英]How to pause media player when you click button back home or recent apps to exit app?

當我單擊“主頁”按鈕或最近使用的應用程序退出應用程序時,我試圖暫停媒體播放器,但這沒有發生。 下面是我的相同代碼:

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK)
        {
            MainActivity.mediaPlayer.pause();
        }
        else if(keyCode==KeyEvent.KEYCODE_HOME )
        {
            MainActivity.mediaPlayer.pause();
        }
        else if(keyCode==KeyEvent.KEYCODE_ALL_APPS)      {
            MainActivity.mediaPlayer.pause();
        }
        else if(keyCode == KeyEvent.KEYCODE_APP_SWITCH)
        {
            MainActivity.mediaPlayer.pause();
        }
        return super.onKeyDown(keyCode, event);
    }

只需重寫onPause()onStop()

@Override
protected void onPause() {
    if (mediaPlayer != null) {
        mediaPlayer.pause();

    }
}

@Override
protected void onStop() {
    if (mediaPlayer != null) {
        mediaPlayer.pause();

    }
}

這會有所幫助

onPause()

在系統即將開始恢復上一個活動時調用。 通常,此方法用於對持久性數據提交未保存的更改,停止動畫以及可能消耗CPU的其他操作,等等。此方法的實現必須非常快,因為在此方法返回之前,下一個活動將不會恢復。 如果活動返回到最前面,則緊隨其后的是onResume()如果對用戶不可見,則緊隨其后的是onStop()

onResume()

當活動將開始與用戶互動時調用。 此時,您的活動位於活動堆棧的頂部,而用戶輸入也進入了活動堆棧。 始終跟隨onPause()

@Override
protected void onPause() {
    super.onPause();
    if(mediaPlayer!=null)
    {
        //pause
        mediaPlayer.pause();
    }
}
//resume activity
@Override
protected void onResume() {
    super.onResume();
    if(mediaPlayer!=null)
    {
        //resume
        mediaPlayer.start();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM