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

Может ли кто-нибудь объяснить, в чем разница между несвязанным и связанным сервисом в android

Может кто-нибудь объяснить, какая разница между несвязанным и связанным сервисом в android и объяснить о службе уступки

Спасибо

4b9b3361

Ответ 1

Связанная служба

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

Когда последний клиент отсоединяется от службы, система уничтожает service EXCEPT Если служба была запущена startService

Unbound Service или Started

Служба запускается, когда компонент приложения, такой как активности, запускает его, вызывая startService(). После запуска служба может работать в фоновом режиме на неопределенный срок, даже если компонент, который начал уничтожаться.

НО

Большая путаница в отношении класса Service фактически вращается вокруг того, что это не так:

Служба не является отдельным процессом. Сам объект службы не означает, что он работает в своем собственном процессе; если иное указанный, он работает в том же процессе, что и приложение, оно является частью из.

Служба не является нитью. Это не значит, что нужно делать работу основной поток (чтобы избежать ошибок приложения, не отвечающих).

Здесь используется IntentService.

IntentService - это подкласс Сервиса, который использует рабочий поток для

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

Example

надеюсь, что это поможет:)

Ответ 2

Ограниченные службы ограничены деятельностью, которая связывает ее и будет работать только до тех пор, пока не будет создана ограниченная активность.  в то время как неограниченное обслуживание будет работать до завершения даже после уничтожения активности. табличная разница приведена в ссылке ниже, что очень полезно для интервью http://infobloggall.com/2014/04/15/bounded-service-in-android/

Ответ 3

  • Unbound service запускается, когда метод (например, активность) вызывает метод startService() Если служба "А" включена, когда другой компонент (например, клиент) вызывает метод bindService().

  • Служба Unbound может остановить себя, вызвав метод stopSelf(). Где не удается остановить службу Bound, пока все клиенты не отвяжут услугу.

  • Служба Unbound работает в фоновом режиме бесконечно. Где служба A Bound не работает в фоновом режиме бесконечно.

  • Служба Unbound останавливается методом stopService(). Где As In The Bound услуга, Клиент может отменить услугу, вызвав метод unbindService().

Спасибо

Ответ 4

Связанные и несвязанные службы не являются двумя сторонами монеты

Служба может быть связанной или несвязанной (запущенной) или и той, и другой. Это только вопрос реализации, который вы предоставляете методам обратного вызова класса Service.See все четыре метода обратного вызова здесь

Но для ради дифференциации здесь вы идете

1. Просмотр службы

Unbound Service запускается при вызове метода startService().
Связанная служба запускается при вызове метода bindService().
Однако в обоих вызовах системные вызовы onStartCommand() метод внутри

2. Жизненный период службы

После запуска unboundService он работает неопределенно, пока

BoundService работает до тех пор, пока служба привязана к клиенту. Когда нет активного клиента, связанного с сервисом, система уничтожает Сервис

3. onBind() метод

Когда вы пишете службу, вам придется переопределить onBind(). Если
Unbound Service затем возвращает null
Затем BoundService возвращает объект IBinder.

Хотя несвязанные службы не возвращают объект Ibinder, это не означает, что он не может взаимодействовать с компонентом приложения. Есть способы сделать это, например BroadCastReceiver или ResultReceiver