使用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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...