我在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),它對這兩個概念有一些澄清。 –