服务背景音乐无法关闭

时间:2016-12-23 19:46:39

标签: android android-service android-mediaplayer

在我的应用程序中有背景音乐,因为我有一项服务。它工作正常,但当我关闭应用程序或关闭屏幕时,它“继续播放”。 我应该更改onPauseonStop中的内容吗?

我的代码:

public class MyService 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.id);
    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() {

}

}

2 个答案:

答案 0 :(得分:0)

当屏幕关闭时,您的活动变得不可见,触发 onPause ,然后是 onStop

另一方面,

屏幕上会触发 onStart ,然后触发 onResume

什么时候你想停止使用服务

stopService(new Intent(ActivityName.this, ServiceClassName.class));

答案 1 :(得分:0)

可能会以某种方式创建播放器的副本。尝试使MediaPlayer变量静态,然后在暂停onPause()后尝试释放它。无论如何,你在服务中创建MediaPlayer实例是很奇怪的。