Остановка службы, переданной через уведомление - PullRequest
1 голос
/ 22 марта 2012

В моем приложении у меня есть уведомление на панели задач, и при щелчке оно запускает новое представление «Активность» моей программы.Однако, когда я пытаюсь использовать кнопку остановки, чтобы остановить мой сервис из этого представления, ничего не происходит.Я предполагаю, что когда я нажимаю кнопку уведомления, она не сохраняет мою ДЕЯТЕЛЬНОСТЬ связанной со службой.

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

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

Тогда в сервисе:

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

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

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

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

0 голосов
/ 22 марта 2012

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

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