я нашел и прочитал различные посты здесь на SO, которые упоминают вы должны использовать getApplicationContext()
при привязке к Service
- вместо this
(в качестве Activity
) или getActivity()
(в Fragment
).Кто является «клиентом» Сервиса - Контекстом или ServiceConnection?
Однако для меня возник следующий вопрос: документация неоднократно говорит о «клиентах» Service
, например: «Когда служба отключена от всех клиентов, система Android уничтожает ее» (http://developer.android.com/guide/components/bound-services.html).
Что подразумевается под клиента в этом контексте:
Context
, который был использован для вызоваbindService()
- или
ServiceConnection
, который поставляется вbindService()
Давайте предположим, что у меня есть два Fragments
которые привязаны к тому же Service
- с использованием контекста приложения и каждый со своим собственным ServiceConnection
.
Когда будет уничтожена Служба?
Если моя вторая интерпретация истинна, то Service
будет уничтожен, когда все соединения будут закрыты, то есть когда каждый фрагмент вызвал getActivity().getApplicationContext().unbindService(mConnection)
. Если первое верно, оно должно быть закрыто, как только первый фрагмент сделает этот вызов, потому что это «отвяжет контекст приложения» ...
Итак, какая интерпретация истинна? (Я надеюсь, что это второй ...)