Подтвердить что ты не робот

Служба Android

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

4b9b3361

Ответ 1

Из ссылки SDK разработчика Android для службы:

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

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

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

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

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

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

код: SleepActivity SleepAccelerometerService

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

Ответ 2

Служба - это контекст, подобный Activity, но не имеющий графического интерфейса.

Важно: служба не запускается в новом потоке!

Прочитайте Service, а также проверьте Как всегда запускать службу в фон?