Java 在后台停止MediaPlayer-Android

Java 在后台停止MediaPlayer-Android,java,android,android-mediaplayer,Java,Android,Android Mediaplayer,在我的一项活动中,有一个使用mediaPlayer播放音乐的按钮。此外,它还可以选择在后台播放音乐或在活动结束时停止 我用这个代码 @Override protected void onStop() { super.onStop(); SharedPreferences perfs = PreferenceManager .getDefaultSharedPreferences(getApplicationContext()); if (!perf

在我的一项活动中,有一个使用mediaPlayer播放音乐的按钮。此外,它还可以选择在后台播放音乐或在活动结束时停止

我用这个代码

@Override
protected void onStop() {
    super.onStop();
    SharedPreferences perfs = PreferenceManager
            .getDefaultSharedPreferences(getApplicationContext());
    if (!perfs.getBoolean("bg_play", true)) {
        mediaPlayer.stop();
        mediaPlayer.release();
    }
}
那很好用。现在的问题是,当用户返回活动并按下播放按钮时,它会启动一个新的mediaPlayer并播放新音乐。我想在新音乐启动时停止在后台运行的上一个音乐

这是我的密码

private void myMediaPlayer() {
    if (mediaPlayer.isPlaying()) {
        mediaPlayer.pause();
    }
    else {
            mediaPlayer.stop();
            mediaPlayer.reset();
        try {
            mediaPlayer.setDataSource(Environment.getExternalStorageDirectory()+"file.mp3");
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            mediaPlayer.prepare();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mediaPlayer.start();
    }
}
以及MediaPlayer声明

MediaPlayer mediaPlayer=new MediaPlayer();

onCreate

之前,我是编程新手,所以我可能错了。。让mefiaPlayer变量静态工作不是很好吗?但我认为问题在于,当您回到活动时,活动正在重建。

我是编程新手,所以我可能错了。。让mefiaPlayer变量静态工作不是很好吗?但我认为问题是,当你回到活动时,活动正在重建。@AftabHussain谢谢。很酷!我加上它作为答案。请不要忘记接受:)我让它在活动重新启动时停止并重置。“我的活动”播放与webview html文件相关的音乐。i、 对于file1.html,它播放file1.mp3。返回活动时,我是否可以检查播放的音乐是否与网络视图相关?检查媒体播放器的获取方法。总是有一个get方法:P(例如:mediaPlayer.get…)