Служба Android работает, но не отображается в настройках -> запущенные службы - PullRequest
5 голосов
/ 08 декабря 2011

В моем приложении есть служба, как и в некоторых других приложениях.Из того, к чему я привык, я могу видеть (и убивать) сервисы в настройках -> (запущенные) сервисы.Но: не мое ...

Сам сервис расширен от IntentService.Он обрабатывает Alarm Intents через BroadcastReceiver, а также сообщения из моего приложения и обратно, чтобы сделать некоторую работу.Так как это важно для моего приложения и поддерживает некоторые удаленные веб-сеансы и другие (читай: «много») постоянные данные, я явно запускаю их в основной деятельности с

startService(new Intent(this, HeartBeatService.class)); 

и в службе ядаже используйте

startForeground(NOTIFY_RUNNING, runNotification);

Другие действия моих приложений, использующие сервис, просто использующие bindService (), работающие как шарм.

Это действительно , работает .Идеально и всегда, как я и хотел, даже если действия были убиты андроидом из-за того, что андроид считает нужным.

Просто: я не "вижу", как он работает.Я также попытался переопределить службу onStartCommand () для возврата START_STICKY, но ничего не изменилось.Я знаю, этот не следует перезаписывать в IntentService.

Или я просто как-то не так думаю?IntentService «отличается»?

Спасибо!

1 Ответ

5 голосов
/ 08 декабря 2011

Из справочной документации по Android:

IntentService - это базовый класс для служб, которые обрабатывают асинхронные запросы (выраженные в виде содержимого) по требованию. Клиенты отправляют запросы через вызовы startService (Intent); служба запускается по мере необходимости, обрабатывает каждое намерение по очереди, используя рабочий поток, и останавливается, когда заканчивается его работа.

Ваша служба будет работать только тогда, когда она получит намерение и остановится, как только она будет выполнена, выполняя то, что она намеревалась сделать.

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

Как только вы удалите привязку, они появятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...