使用Context.startForegroundService(Intent)而不是Context.startService(Intent)对前台服务有什么好处?

前端之家收集整理的这篇文章主要介绍了使用Context.startForegroundService(Intent)而不是Context.startService(Intent)对前台服务有什么好处?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 the docs中读到Context.startForegroundService()有一个隐含的承诺,即启动的服务将调用startForeground().但是,由于Android O即将推出后台前台服务的更改,与使用较旧的startService()方法相比,是否还有其他性能改进,或者它是最佳实践?

解决方法

它既不是性能改进,也不是好处,也不是最佳实践.

从API 26开始,系统不允许后台应用程序创建后台服务.

因此,如果您的应用程序在后台(如果它也位于前台,欢迎您也这样做),您必须使用Context.startForegroundService(Intent)而不是前一个startService(Intent).然后,服务必须在启动后的前5秒内调用startForeground(int,Notification),否则系统将停止服务.

还应该提到的是,有一些信息表明从后台应用程序启动带有startService(Intent)的服务的旧方法仍适用于当前版本的Android Oreo,但很快就会修复.

因此,从API 26开始,只要想要启动前台服务,就要使用新的Context.startForegroundService(Intent)方法而不是startService(Intent).

猜你在找的Android相关文章