2014-01-05 2 views
2

Привет, ребята, я - абсолютный новичок в разработке Android.
Я сейчас создаю простое приложение для Android, и я использую «BackgroundService» для фоновой музыки.
Мне удается играть музыку; моя проблема в том, что когда я закрываю приложение или нажимаю кнопку «домой», музыка не останавливается.
Можете ли вы, ребята, помочь мне?
Вот мой код:Проблемы с Android - Фоновая служба не останавливается

MediaPlayer player; 
public IBinder onBind(Intent arg0) { 

    return null; 
} 
@Override 
public void onCreate() { 
    super.onCreate(); 
    player = MediaPlayer.create(this, R.raw.sample); 
    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; 
} 

public void onStop() { 

} 
public void onPause() { 

} 
@Override 
public void onDestroy() { 
    player.stop(); 
    player.release(); 
} 

@Override 
public void onLowMemory() { 

} 

}

+1

вот что такое сервис! если вы хотите, чтобы ваша музыка останавливалась, когда вы покидали приложение, вы должны использовать действие, а не службу ... или остановить службу в методе onStop/onPause своей активности. –

+0

использовать сервис, чтобы каждый раз, когда я меняю действие, он будет продолжать играть, я также пытался использовать активность, но когда я использую метод stop или pause каждый раз, когда меняю активность, музыка остановлена ​​ – user3162784

ответ

1

по методу OnPause, добавьте также

player.stop(); 
player.release(); 

надеюсь, что это помогает

+0

, она делает работу сэр, но спасибо за ответы на мой вопрос – user3162784

0

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

Служба останется в живых, даже если ваша деятельность будет уничтожена. Вы должны остановить службу вручную. В onPause() вашей деятельности попытайтесь остановить службу.

stopService(this, serviceClassName.class) 

и в onPause() Службы, вы должны остановиться и отпустить игрока

player.stop(); 
player.release(); 

Смотрите эту ссылку, чтобы узнать больше о Service и его жизненный цикл. developers.android.com

+0

извините за мой вопрос im, так что noob в этом поле можно спросить, где должен ли я поставить stopService (это, serviceClassName.class) – user3162784

+0

Переопределить метод onPause() 'вашей деятельности. Если вы используете Eclipse, перейдите в «Source> Override/Implement methods> onPause()», внутри которого вы остановите службу. Аналогично в 'onPause()' службы 'вы останавливаете и освобождаете игрока. –

+0

Я положил @Override public void onPause() { \t stopService (это, MusicService.class); \t} в моей первой активности, но stopService дает мне ошибку – user3162784

Смежные вопросы