Я уверен, что это простой ответ, но он сводит меня с ума, и я надеюсь, что кто-то может просто избавить меня от моих страданий.
У меня есть активность Android, виджет и сервис. Служба запускает звук в фоновом режиме, либо в течение определенного времени, либо непрерывно. Поскольку я хочу, чтобы звук работал до тех пор, пока не будет достигнут стоп, у меня нет метода stopSelf () в сервисе. Все было хорошо и здорово, потому что у меня было startService при игре и stopService при остановке. Теперь я хочу бросить виджет в этом последнем обновлении. Так вот где я застрял. Поскольку это приемник вещания, я очень ограничен в том, что он может делать. Я могу вызвать context.stopService, но я хочу остановить службу только при нажатии кнопки. Я могу только найти способ установить onClickListener с pendingIntent.
В методе onStartCommand () моего сервиса я считал дополнительные "петли" из входящего намерения. Поэтому я попытался просто передать нулевое значение, но по какой-то причине он, похоже, его не читает. Я знаю, что onStartCommand () вызывается в сервисе, потому что играет музыка, но независимо от того, какие дополнительные усилия я добавляю в намерение, кажется, что он не читается, и я понятия не имею, почему. Итак, мой вопрос: какова лучшая стратегия для остановки службы с помощью кнопки виджета? Я надеюсь, что это простой ответ, в противном случае, я думаю, я мог бы создать новый приемник активности или широковещания для обработки нажатия кнопки, но это кажется таким ненужным. Любой совет будет очень признателен! Спасибо!