音乐作为背景音乐,服务,在所有活动中关闭onStop和onPause

时间:2016-12-24 07:46:52

标签: android service

在我的应用中,有一个背景音乐,完成了服务。在我的应用程序中有很多活动,所以我希望音乐可以在所有这些活动中播放,但也可以在屏幕关闭或用户关闭应用时关闭。在一个活动的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() {

}

}

1 个答案:

答案 0 :(得分:0)

您将播放器添加到应用程序上下文中,以便每个活动都可以使用它(Android global variable),然后您就可以在其他活动中启动/暂停播放器。第二种方法是使用总线框架,在活动之间传输玩家对象。