我在这里找到并阅读了关于 SO 的各种帖子,其中提到getApplicationContext()
在绑定到 a Service
- 而不是this
(in an Activity
) 或getActivity()
(in a Fragment
) 时应该使用。
但是,这对我提出了以下问题:文档反复谈论 a 的“客户端” Service
,例如:“当服务与所有客户端解除绑定时,Android 系统将其销毁”(http://developer.android.com /guide/components/bound-services.html)。
在这种情况下,客户是什么意思:
- 那个
Context
用来打电话的bindService()
- 或
ServiceConnection
提供给bindService()
假设我有两个Fragments
绑定到相同的Service
- 使用应用程序上下文并且每个都有自己的ServiceConnection
.
服务何时会被销毁?
如果我的第二种解释是正确的,Service
那么当所有连接都关闭时,即当每个 Fragment 调用getActivity().getApplicationContext().unbindService(mConnection)
. 如果第一个是真的,它应该在第一个 Fragment 进行调用时立即关闭,因为这将“取消绑定应用程序上下文”......
那么,哪种解释是正确的呢?(希望是第二个……)