当我播放歌曲并按返回按钮返回首页时,音乐会继续播放。当我再次启动应用程序时,音乐播放两次。我认为是 onResume 方法,因为我注释掉了该方法,问题就停止了。如何让 onResume 正常工作?我尝试在 onResume 中使用 if(backgroundMusic.isplaying()) ,但是当我从另一个 Activity 恢复时应用程序崩溃。我究竟做错了什么?
//global mediaplayer
MediaPlayer backgroundMusic;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
loadBackgroundMusic();
}
private void loadBackgroundMusic() {
//load mp3 into object and start it
backgroundMusic = MediaPlayer.create(this,R.raw.backgrounmusic);
backgroundMusic.setLooping(true);
backgroundMusic.start();
}
@Override
protected void onPause() {
super.onPause();
backgroundMusic.release();
}
@Override
protected void onResume() {
super.onResume();
loadBackgroundMusic();
}
@Override
protected void onStop() {
super.onStop();
backgroundMusic.release();
}
最佳答案
我不太确定你想要的行为。在我看来,它是以下两个之一:
仅当我的 Activity 可见时才播放音乐
如果是这种情况,您应该仔细查看 Activity Lifecycle 的文档。例如,这将告诉您
onResume()
也将在第一次创建 Activity 时被调用。因此,解决方案是在
onResume()
中开始播放音乐,并在onPause()
或类似方法中停止。开始我的 Activity 一次后,即使我返回主屏幕也应该播放音乐
在这种情况下,您确实想要 Service 。
关于java - Android:如果我继续按后退按钮并再次启动应用程序,Mediaplayer 会播放多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9420100/