在我的应用中,有一个背景音乐,完成了服务。在我的应用程序中有很多活动,所以我希望音乐可以在所有这些活动中播放,但也可以在屏幕关闭或用户关闭应用时关闭。在一个活动的java中我写了这个:
public void onPause() {
super.onPause();
stopService(new Intent(Activity.this, Service.class));
}
public void onStop() {
super.onStop();
stopService(new Intent(Activity.this, Service.class));
}
public void onResume() {
super.onResume();
startService(new Intent(Activity.this, Service.class));
}
public void onRestart() {
super.onRestart();
startService(new Intent(Activity.this, Service.class));
}
问题是当我切换到另一个活动时,服务/音乐停止。 如何在所有活动中播放音乐,还关闭所有活动中的停止和停止?谢谢。
我的服务:
public class Service extends Service {
private 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.music);
player.setLooping(true); // Set looping
player.setVolume(100, 100);
}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return 1;
}
public void onStart(Intent intent, int startId) {
// TO DO
}
public IBinder onUnBind(Intent arg0) {
// TO DO Auto-generated method
return null;
}
protected void onStop() {
player.pause();
}
public void onPause() {
player.pause();
}
@Override
public void onDestroy() {
player.stop();
player.release();
}
@Override
public void onLowMemory() {
}
}
答案 0 :(得分:0)
您将播放器添加到应用程序上下文中,以便每个活动都可以使用它(Android global variable),然后您就可以在其他活动中启动/暂停播放器。第二种方法是使用总线框架,在活动之间传输玩家对象。