Остановка звуковой службы

Я использую служебную музыку BackGroundSound, но когда я нажимаю кнопку «Домой» или кнопку питания или выхожу из приложения, музыка просто не останавливается, и мне нужно, чтобы она остановилась. У кого-нибудь есть предложения / идеи, как это исправить? Я использовал этот гайд https://www.simplifiedcoding.net/android-service-example/

public class Backgroundsoundservice extends Service {
    private static 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.backgroundmusic01);
        player.setLooping(true); // Set looping
        player.setVolume(100,100);

    }
    @SuppressLint("WrongConstant")
    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() {
        player.stop();

    }
    public void onPause()
    {
        player.pause();

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

    @Override
    public void onLowMemory() {

    }
}
0
0
243
1

Ответы 1

Попробуйте переопределить onPause вот так.

@Override
protected void onPause() {
    super.onPause();
    if (mediaPlayer != null){
        mediaPlayser.stop();
        if (isFinishing()){
        mediaPlayer.stop();
        mediaPlayer.release();
        }
    }
}

Другие вопросы по теме

Похожие вопросы

Должен ли я создавать разные таблицы для каждого конкретного списка в приложении ToDo?
Наблюдать за данными из комнаты, используя модель просмотра в Котлине
JNI ОБНАРУЖЕНА ОШИБКА В ПРИЛОЖЕНИИ -JNI CallVoidMethodV вызывается с ожиданием - Нет такой ошибки метода - При использовании Proguard
Как постоянно читать изменение значения в Firebase (Android)?
Хранение данных в SQLite или их анализ из Интернета?
Доступ к защищенному паролем URL-адресу сервера Apache
Я хочу создать приложение для рисования, и я хочу увеличивать и уменьшать масштаб всего экрана, может ли кто-нибудь дать мне какое-либо представление о том, как это сделать
Почему SwipeRefreshLayout не работает или занимает слишком много времени?
У указанного потомка уже есть родитель. Вы должны сначала вызвать removeView () для дочернего родителя при создании настраиваемого класса представления
Как сделать интерактивным и открывать настраиваемое диалоговое окно предупреждений в списке Android?