Как остановить запуск службы после того, как пользователь перестанет просматривать приложения. Действия. Андроид

У меня есть следующий код в каждом из 5 действий моего приложения. Я хотел, чтобы служба работала, связанная с этими пятью действиями. В фоновом режиме будет играть музыка. Однако, когда пользователь уходит от любого из этих пяти действий, Служба должна быть уничтожена. Используя приведенный ниже код, я могу заставить его воспроизводить музыку в фоновом режиме при навигации между действиями. но служба продолжает работать после выхода из приложения. Каков наилучший способ решить эту проблему? Как насчет творческих идей.

Я помещаю это сообщение Toast в метод onDestroy службы, чтобы я мог сказать, когда служба остановлена.

 Toast.makeText(this, "My Service Destroyed", Toast.LENGTH_LONG).show();

Я никогда не вижу всплывающих сообщений всплывающих окон, когда я выхожу из приложения. Другие всплывающие сообщения показывают, что служба запущена.

@Override
public void onPause() {
    super.onPause();
    unbindService(serviceConnection);
}

@Override
public void onResume() { 
    //After a pause OR at startup
    super.onResume();
    //add this to the onResume of the activity
    //  startService(new Intent(this, AudioService.class));
    bindService(new Intent(this, AudioService.class), 
                  serviceConnection, Context.BIND_AUTO_CREATE);

}

person Kevik    schedule 17.12.2012    source источник


Ответы (1)


Согласно документации здесь:

Несколько клиентов могут привязываться к службе одновременно. Когда клиент завершает взаимодействие со службой, он вызывает функцию unbindService() для отмены привязки. Как только к сервису не привязаны клиенты, система уничтожает сервис.

Так что, возможно, вы упускаете какую-то развязку в одном из ваших занятий. Вы можете проверить это, распечатав журнал в методах onBind и onUnbind вашего сервиса.

person Aballano    schedule 17.12.2012