【发布时间】:2017-08-20 10:47:53
【问题描述】:
我使用服务在所有活动中播放背景音乐,它可以正常工作。问题是即使我的应用程序在后台(当用户使用主页按钮或后退按钮退出时),音乐也会继续播放。我该如何解决这个问题?
服务类BackgroundSoundService
public class BackgroundSoundService extends Service {
private static final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.slow_shock);
player.setLooping(true); // Set looping
player.setVolume(100,100);
}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return START_NOT_STICKY;
}
public void onStart(Intent intent, int startId) {
// TO DO
}
public IBinder onUnBind(Intent arg0) {
// TO DO Auto-generated method
return null;
}
public void onStop() {
}
public void onPause() {
}
@Override
public void onDestroy() {
player.stop();
player.release();
}
@Override
public void onLowMemory() {
}
}
开始
Intent svc = new Intent(this, BackgroundSoundService.class);
startService(svc);
Android 清单:
<service android:enabled="true" android:name=".BackgroundSoundService" />
【问题讨论】:
-
另一个建议是使用 1 Activity 和多个 Fragment。在这种情况下,您不需要服务,并且合理的逻辑可以取决于 Activity 的生命周期。