У меня есть IntentSerivce
, который иногда работает в фоновом режиме, и в некоторых случаях это может быть довольно долгий процесс. Я даю пользователю возможность выйти из приложения, которое в основном просто останавливается и опрашивает и игнорирует любые GCM
push-уведомления. Но если пришло push-уведомление, и IntentService
требуется некоторое время, чтобы закончить то, что он должен (получает информацию с сервера и при необходимости отправляет уведомление пользователю, например, о получении нового сообщения или что-то в этом роде).
Вот в чем проблема: если пользователь решит «Выйти» из приложения, пока intentservice
все еще работает, он все равно получит уведомление, которое мне не нужно. Я знаю, что для службы существует метод stopSelf()
, но мне нужно остановить его в действии, когда я знаю, что пользователь «вышел» из приложения с помощью кнопки меню. Отправка еще одного intent
в службу не работает, поскольку намерения ставятся в очередь, а вызов context.stopService(intent);
в моей деятельности также не работает, так как еще я могу это остановить?