我在这里找到并阅读了关于 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 进行调用时立即关闭,因为这将“取消绑定应用程序上下文”......
那么,哪种解释是正确的呢?(希望是第二个……)