Как остановить запуск службы после того, как пользователь перестанет просматривать приложения. Android
У меня есть следующий код в каждом из 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);
}
1 ответ
Согласно документации здесь:
Несколько клиентов могут связываться с сервисом одновременно. Когда клиент завершает взаимодействие со службой, он вызывает unbindService() для отмены привязки. Если к услуге не привязаны клиенты, система уничтожает службу.
Так что, возможно, вы упускаете некоторую привязку в одном из ваших занятий. Вы можете проверить это, распечатав журнал в методах onBind и onUnbind вашего сервиса.