将服务绑定到FragmentActivity
:
bindService(Intent, ServiceConnection, int);
或Fragment
:
getActivity().bindService(Intent, ServiceConnection, int);
什么是更好的做法?
将服务绑定到FragmentActivity
:
bindService(Intent, ServiceConnection, int);
或Fragment
:
getActivity().bindService(Intent, ServiceConnection, int);
什么是更好的做法?
将服务绑定到 FragmentActivity... 还是 Fragment 更好
它们和你在这里写的一样。getActivity()
不是Fragment
- 它是一个返回Activity
. 您不能调用bindService()
.Fragment
什么是更好的做法?
两者都不。绑定到Application
通过 获得的对象,getApplicationContext()
由ServiceConnection
(或实际上是)一个保留的管理Fragment
。
原因是配置更改。绑定是状态。您需要在配置更改时保持该状态。虽然保留的Fragment
可以保留,但系统中的和注册它以进行绑定ServiceConnection
的系统之间存在隐式联系。由于活动可以在配置更改时被销毁和重新创建,所以这里不是一个好的选择。,这是系统全局的,是一个更安全的选择,并且是少数几个选择另一个是明智之举的地方之一恕我直言。ServiceConnection
Context
Activity
Context
Application
Application
Context
这是我的一篇博客文章,从片段之前的时间开始,更多地涉及到这一点。这是一个演示该技术的示例项目。