2010-12-04 2 views
12

Пожалуйста, объясните Android Service. Как он отличается от Activity? Это зависит от состояния приложения, такого как запуск в переднего плана/фона?Служба Android

ответ

28

От Android Developer's SDK reference for Service:

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

Очень важно отметить

, что услуги, как и другие объекты приложения, работают в основном потоке процесса их хостинга. Это означает, что если ваша служба будет делать какие-либо интенсивные работы с ЦП (например, воспроизведение MP3) или блокирование (например, сетевые), она должна создать собственный поток, в котором будет выполняться эта работа.

Это в отличие от деятельности, которая лучше всего понимается как что-то пользователь непосредственно видит и взаимодействует с (ПИ).

услуга, как упоминалось выше, может быть использована для более длинных выполняющихся операций это будет продолжаться, даже если у вас нет активности переднего плана, но они могут и в конечном итоге будут уничтожены жизненным циклом Android, если они останутся в «фоновом» состоянии. Если вам нужна ваша служба для продолжения работы как одного экземпляра без его увольнения и перезапуска, я бы порекомендовал разместить startForeground(int id, Notification notification) в методе onCreate вашего Сервиса и stopForeground(boolean removeNotification) в методе вашего Сервиса.

Например, у меня есть приложение, которое использует foreground Service для записи данных акселерометра всю ночь, когда устройство Android находится рядом с телом пользователя. Хотя это не требуется, чтобы быть активным, у меня также есть Activity что транслируют Intent к BroadcastReceiver внутри Service который говорит Service, что он также должен транслировать Intent с данными акселерометра в качестве массовки в виде BroadcastReceiver внутри Activity.

Код: SleepActivity SleepAccelerometerService

Удачи и дайте мне знать, если вам нужно больше информации!

+1

нарушена ваша вторая ссылка «SleepAccelerometerService». – gonzobrains 2013-04-25 21:02:32

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