2015-03-10 3 views
1

Я пытаюсь играть музыку в сервисе. Проблема в том, что когда я убиваю приложение, моя музыка останавливается и начинается с самого начала. Как я могу поддерживать безупречную работу своей музыки. Вот мой код:Служба получает перезапуск, когда приложение убито

public class EngineBackground extends Service { 

    static MediaPlayer player; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     if(player == null){ 
      player = MediaPlayer.create(this, R.raw.aajraate); 
     } 

    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     player.start(); 
     return START_STICKY; 
    } 

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

Добавить действие в onStartCommand и установить условия действия – IshRoid

+0

Попробуйте сыграть 'MediaPlayer' в' foreground' с прикрепленным уведомлением, чтобы он сохранял работоспособность, пока его убили. – Gavin

ответ

1

Ожидаемое поведение.

Не убивайте приложения.

Если ваши пользователи делают это, в том числе путем выкачивания из ретентатов, им необходимо будет принять кратковременное прерывание воспроизведения, которое будет продолжаться до тех пор, пока Android не восстановит вашу службу и возобновит игру.

Возможно, вы сможете получить немного лучшие результаты, запустив фоновое обслуживание в своем собственном процессе с использованием атрибутов манифеста, но вы по-прежнему не можете считать какой-либо из вашего кода невосприимчивым к тому, чтобы его убили - например, это может произойти, если что-то в на переднем плане требуется больше ресурсов.

+2

, но музыкальный проигрыватель по умолчанию для телефона продолжает воспроизводить музыку без перерывов. Как это сделать? –