我在Activity中使用getApplication()。bindService()或bindService()。 比另一个更好。考虑到Activity具有生命周期,在什么情况下,应用程序上下文将用于启动/绑定到服务。调用哪个上下文startService
回答
对于从活动结合到服务,使用Application
上下文(getApplication()
)。这是因为绑定本身表示需要作为配置更改处理的一部分进行处理的状态(例如,通过onRetainNonConfigurationInstance()
)。一个活动实例可能会绑定,但是在配置更改之后,您可能不会解除绑定。使用Activity
作为Context
对于bindService()
可能引入了内存泄漏(新的活动将间接引用保留回绑定到服务的原始活动)。
但是,起始来自活动的服务不涉及活动中的框架强制状态。因此,在活动本身上使用startService()
开始服务应该没问题。
老实说,我从来没有见过任何'Activity'在'Application'上下文中调用'bindService','bind' /'unbind'请求应该配对,所以不会有泄漏的机会... – pskink
@pskink:如果你作为配置更改的一部分,服务可能会在您有机会再次绑定新活动之前关闭。现在,如果您确定其他内容正在使服务保持运行(例如,它已被绑定并启动),那么这可能不是问题。 – CommonsWare
- 1. startService在应用程序上下文中调用时未启动
- 2. bindservice vs startService上传/下载进程
- 3. 我应该在哪个时间和哪个上下文中调用ThreadPool.SetMinThreads
- 4. Android SDK - 哪个ListItem调用了实际的上下文菜单?
- 5. IntentService - startService上的NullPointerExecption
- 6. FirebaseCrash在哪个上下文下执行
- 7. 使用哪种上下文?
- 8. 哪个文件调用validationTextBox.js?
- 9. bindService在上次活动中调用startService时失败
- 10. roboguice注入哪个上下文?
- 11. 哪个上下文是相对路径?
- 12. Django:哪个上下文属于哪个模板
- 13. .Net Remoting调用上下文
- 14. 无法使用startService
- 15. Android dev:如何找出哪个EditText正在调用上下文菜单
- 16. WordPress:不同的WP_Query用法:哪个正确,在哪个上下文中?
- 17. Netlogo在乌龟上下文中调用observer上下文函数
- 18. 链接EF 4.0上下文的WCF调用上下文
- 19. startService()抛出java.lang.IllegalStateException
- 20. startService与BroadcastReceiver
- 21. StartService中的NullPointerException
- 22. Android - 立即startService
- 23. StartService在片段
- 24. WMI StartService参数
- 25. Android startService同步?
- 26. startService启动MainActivity
- 27. 哪个上下文在服务中使用?
- 28. 用TreeStoreBuilder调整用户上下文
- 29. 哪个按钮调用javascript文件
- 30. 如何实现startService(i)不在MainActivity上
检查这个答案[链接](http://stackoverflow.com/questions/6446221/get-context-in-a-service),它对这两个概念有一些澄清。 –