我在the docs中讀到Context.startForegroundService()
暗示承諾啓動的服務將調用startForeground()
。但是,由於Android O隨着後臺和前臺服務的變化而出現,與使用舊版startService()
方法相比,還有其他性能改進嗎?還是僅僅是最佳實踐?對前臺服務使用Context.startForegroundService(Intent)而不是Context.startService(Intent)有沒有什麼好處?
3
A
回答
3
這是關於性能改進,效益和最佳實踐。
從API 26開始,系統不允許後臺應用程序創建後臺服務。
所以,如果您的應用程序在後臺運行(歡迎您做同樣的,如果是在前臺爲好),你必須使用Context.startForegroundService(Intent)
代替前者startService(Intent)
的。該服務必須在啓動後的第一個5秒內撥打startForeground(int, Notification)
,否則系統將停止服務。
還應該提到的是,有一些信息表明,從後臺應用程序開始startService(Intent)
服務的舊方式仍然適用於當前版本的Android Oreo,但它很快就會被修復。
因此,從API 26開始,只要希望啓動前臺服務,就希望使用新的Context.startForegroundService(Intent)
方法而不是startService(Intent)
。
相關問題
- 1. Context.startService(intent)或startService(intent)
- 2. 什麼好處會有使用監聽器的服務,而不是服務
- 3. intent和listener有什麼不同?
- 4. Tmux爲什麼有一臺服務器?有什麼好處?
- 5. 使用intent啓動沒有活動的Android服務
- 6. 什麼是由一個Intent
- 7. Fontpath沒有通過intent
- 8. 使用Doctrine使用DQL而不是SQL有什麼好處?
- 9. OnHandleIntent不在Intent服務中調用
- 10. 爲什麼Intent在調用Activity時沒有重定向?
- 11. 我應該使用intent服務嗎?
- 12. 使用calloc()而不是malloc()和memset()有什麼好處嗎?
- 13. 使用分部類而不是抽象類有什麼好處?
- 14. 使用Flux而不是for循環,有什麼好處?
- 15. 使用名稱而不是版本號有什麼好處?
- 16. 使用ORDBMS代替RDBMS有什麼好處,而不是JPA
- 17. PHP:使用echo而不是print有什麼好處?
- 18. 使用Spring DataAccessExceptions而不是JPA PersistenceExceptions有什麼好處嗎?
- 19. 使用BIO_printf()而不是printf()有什麼好處?
- 20. 使用* .component.scss而不是將其寫入styles.scss有什麼好處?
- 21. 爲什麼v4片段沒有startActivity(Intent,Bundle)?
- 22. 通過Intent將對象發送到服務而無需綁定
- 23. 對Node.js使用Nginx有什麼好處?
- 24. android中的intent代碼是什麼?
- 25. Android - Intent ACTION_CALL沒有通話記錄
- 26. 有沒有什麼好的理由不使用unicode而不是string?
- 27. Android:使用Intent調用方法而不是類?
- 28. 將Apache Tika應用於Solr而不是Nutch有什麼好處
- 29. Products.SQLAlchemyPAS作爲前臺而不是服務
- 30. 使用JSP有什麼好處? (java服務器頁面)
'有一種信息,即從一個bacjground應用程序啓動startService(Intent)服務的舊方法仍然有效'是否有源代碼? –