我在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)服务的旧方法仍然有效'是否有源代码? –