Кто является "клиентом" Сервиса - Контекстом или Сервисным Соединением?

Я нашел и прочитал различные посты здесь на SO, которые упоминают, что вы должны использовать getApplicationContext() при привязке к Service - вместо thisActivity) или же getActivity()Fragment).

Тем не менее, это подняло для меня следующий вопрос: документация неоднократно говорит о "клиентах" ServiceНапример: "Когда служба не связана со всеми клиентами, система Android уничтожает ее" ( http://developer.android.com/guide/components/bound-services.html).

Что подразумевается под клиентом в этом контексте:

  • Context который был использован для вызова bindService()
  • или ServiceConnection что было поставлено bindService()

Давайте предположим, у меня есть два Fragments которые связаны с тем же Service - используя контекст приложения и каждый со своим ServiceConnection,

Когда Служба будет уничтожена?

Если мое второе толкование верно, то Service будет уничтожен, когда все соединения закрыты, т.е. когда каждый фрагмент вызвал getActivity().getApplicationContext().unbindService(mConnection), Если первый из них равен true, он должен быть закрыт, как только первый фрагмент сделает этот вызов, потому что это "отсоединит контекст приложения"...

Итак, какая интерпретация верна? (Надеюсь, это второй...)

1 ответ

Решение

Ты используешь getApplicationContext() таким образом ServiceConnection выживает, например, изменения ориентации деятельности (деятельность разрушается и воссоздается, и это также делает ее контекст). Согласно документации, сервис может отключиться, когда работа остановлена ​​(не уничтожена).

"Клиент" - это любой, кто имеет активный ServiceConnection, Когда никто не подключен к сервису, он больше не нужен и поэтому уничтожается (если только он не запущен startService(...)). ServiceConnectionСчитаются не контексты.

Я не проверял, закрывается ли соединение автоматически, если указанный фрагмент уничтожен. Я предполагаю, что НЕТ, потому что контекст приложения выживает - вы должны явно отменить привязку в onDestroy,

Другие вопросы по тегам