当您单击按钮返回主页或最近的应用程序退出应用程序时如何暂停媒体播放器?

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()

在系统即将开始恢复之前的 activity 时调用。这通常用于提交对持久数据的未保存更改、停止动画和其他可能消耗 CPU 的事情等。此方法的实现必须非常快,因为下一个 activity 直到这个方法 returns。 如果 activity returns 回到前面,则后跟 onResume(),如果用户不可见,则后跟 onStop()

onResume()

当 activity 将开始与用户交互时调用。此时您的 activity 位于 activity 堆栈的顶部,用户输入将进入它。 始终后跟 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();
    }
}