2012-04-01 4 views
0

В android служба используется для работы в фоновом режиме. Но то же самое можно сделать и с помощью диспетчера аварийных сигналов. Приемник тревоги может выполнять те же действия, что и в службе. Итак, какова потребность в обслуживании в Android?Разница между сервисом и использованием диспетчера аварийных сигналов в android

ответ

1

На самом деле это две разные вещи. Alarm Manager может использоваться для выполнения некоторых задач периодически с использованием службы. Но услуга может также использоваться, например, для перемещения некоторой тяжелой работы из потока пользовательского интерфейса (загрузка данных с сервера отдыха) или в случае услуг переднего плана, для постоянной работы (mp3-плеер).

Вы можете получить некоторое объяснение того, как пользоваться сервисом (с некоторыми советами с учетом AlarmManager) на Styling Android.

+0

Вы можете сразу установить будильник и функцию onreceive() делайте тяжелую работу в отдельной нитке. – Ashwin

+0

Если честно, я никогда не пытался это сделать. Но службы используются для многих других задач без AlarmManager. Например, я использую Службу для загрузки данных с сервера отдыха и предоставления ей двух разных видов деятельности. Я хочу иметь возможность получать одни и те же данные и перезагружать их загрузку. Честно говоря, я не могу придумать хорошую альтернативу Сервису здесь. AlarmManager совершенно бесполезен в такой задаче –

0

Как правило, служба используется для обработки логики, когда вам больше не нужен пользовательский интерфейс. Например, служба, которую я хочу использовать, проверяет сайт социальной сети на обновления каждые 15 минут. У службы есть логика обработки обновления. Но кто начнет службу каждые 15 минут? Именно здесь используется AlarmManager. Он будет периодически запускать мой сервис каждые 15 минут один раз, чтобы служба могла выполнять свою логику и останавливаться после выполнения задания, и мое приложение не продолжает разряжать батарею.

+0

Точно так я и говорю. «Но кто начнет службу каждые 15 минут?». Зачем вам нужно начинать обслуживание каждые 15 минут. вы можете напрямую написать код для проверки обновлений в функции onReceiver() трансляционного транслятора. – Ashwin

+0

Я не понимаю, что вы говорите. Пожалуйста, объясните подробно. – Ashwin

+0

широковещательный приемник запускается при трансляции соответствующего намерения. даже если обновление присутствует на сервере социальных сетей, в вашем мобильном телефоне не может быть трансляции намерений. Это можно сделать только с мобильного телефона. В этом случае бр бесполезен. Вы можете узнать об обновлении, установив соединение с сервером (из службы). – Akhil

1

Ну, оба абсолютно разные тины.

AlarmManager Класс используется для выполнения определенных событий после определенного интервала времени или может быть на регулярном временном интервале. События могут также выполняться Сервисом. AlarmManager позволяет планировать ваше приложение для запуска в какой-то момент в будущем.

В то время как в случае Service это фоновый процесс, который не имеет/requier UI. Служба не является процессом с сокрытием, или Служба не является нитью. Служба представляет собой компонент приложения, представляющий либо желание приложения выполнять более длительную работу, не взаимодействуя с пользователем, либо предоставлять функциональные возможности для других приложений для использования

+0

Даже диспетчер аварийных сигналов является фоновым процессом, который не требует пользовательского интерфейса. Что вы делаете в классе обслуживания, то же самое можно сделать и в классе broadcastreceiver. – Ashwin

+0

хорошо, вы не можете планировать события в классе службы. – Lucifer

+0

Итак, что вы делаете? – Ashwin

Смежные вопросы