Остановка службы, переданной через уведомление

1

В моем приложении у меня есть уведомление в панели задач, и при нажатии открывается новое представление Activity моей программы. Однако, когда я пытаюсь использовать кнопку остановки, чтобы остановить мой сервис из этого представления, ничего не происходит. Я предполагаю, когда я нажимаю кнопку уведомления, чтобы она не поддерживала мою активность, связанную с сервисом.

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

Intent svc = new Intent(this, StreamService.class);
startService(svc);

Затем в сервисе:

//Intent passed when notification is selected.
Intent notificationIntent = new Intent(this, HomeActivity.class);

Любая идея, как связаться со своим текущим сервисом? Или, возможно, вернуть исходное действие/просмотр на передний план при выборе уведомления?

Теги:
android-activity
android-service
android-intent
android-view

2 ответа

2
Лучший ответ

Цель, которую вы можете приложить к уведомлению, должна иметь намерение службы с конкретным действием. В вашем сервисе onStart метод, вы можете проверить его на близкое действие, а затем вы можете вызвать stopSelf().

  • 1
    Ну, я хотел бы открыть последнее представление. Остановка службы - это то, что они могут сделать из этого представления. (Служба воспроизводит музыку) Боюсь, я все еще не уверена, как использовать ваш совет. Кнопка остановки воспроизведения просто не работает, потому что она больше не связана со службой. Или так я предполагаю.
  • 0
    Уведомление -> Запускает активность, Активность -> Закрывает службу (напрямую или через намерение).
Показать ещё 1 комментарий
0

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

Intent svc = new Intent(this, StreamService.class);
stopService(svc);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню