我的APP有3个活动,分别为“ MainActivity”,“ LevelActivity”和“ GameActivity”。现在我想在MainActivity和LevelActivity中玩BGM。从Main跳到Level时,我不希望音乐从头开始。所以我用Service玩BGM。
但是问题是,如果我没有在MainActivity中重写onStop(),则在单击“ HOME”按钮后BGM仍在播放。但是,如果我在MainActivity中重写onStop(),则当我从Main跳到Level时,BGM将停止。
public class MusicService extends Service {
private MediaPlayer mediaPlayer;
@Override
public void onCreate() {
// my codes...
}
@Override
public void onStart(Intent intent, int startId) {
// my codes...
}
@Override
public void onDestroy() {
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
}
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
当我按“ HOME”时,我该怎么做才能停止BGM?
谢谢。
答案 0 :(得分:0)
您可以通过添加boolean
变量来达到目的。
1-创建一个boolean
变量isAppStillRunning = false
2-然后,当您要开始级别活动时,请在isAppStillRunning = true
之前放置startActivity()
3-每当您回到MainActivity时,都要使isAppStillRunning = false
现在在您的onStop()
中的MainActivity
中,
if(!isAppStillRunning){
//do the proccess to stop music
}