当使用服务时app被杀死时音乐暂停

时间:2018-03-07 13:55:21

标签: android service push-notification

我正在使用Service课程在后台播放音乐。当我在顶部显示通知栏时,我的应用程序中存在问题。当我杀死应用程序时,音乐会停止大约1秒钟然后再次启动。我无法弄清楚问题是什么。

我正在关注this教程。

public class MyMusicService extends Service {

    MediaPlayer mediaPlayer;

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    public MyMusicService() {
        super();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        if (mediaPlayer!= null)
        {
            mediaPlayer.release();
        }
        mediaPlayer =MediaPlayer.create(this,R.raw.song);
        mediaPlayer.setLooping(true);
        mediaPlayer.start();

         return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();

            mediaPlayer.stop();


    }
}

3 个答案:

答案 0 :(得分:1)

在主要活动上使用onTaskRemoved,并在此事件上释放媒体播放器。

答案 1 :(得分:0)

根据:https://developer.android.com/reference/android/app/Service.html 改变

START_STICKY

START_NOT_STICKY

编辑:

音乐停止一段时间的问题与您在同一过程中运行应用和服务这一事实有关。而'kill app'意味着停止与它绑定的整个过程。您需要做的是在单独的过程中运行您的服务:

Start a service in a separate process android

答案 2 :(得分:0)

该教程向您展示了如何构建可能被系统杀死的BACKGROUND服务。要播放音乐,您应该使用FOREGROUND服务。

https://developer.android.com/guide/components/services.html#Foreground