我读入了the docs Context.startForegroundService()
隐含 promise 启动的服务将调用 startForeground()
。然而,由于 Android O 正在对后台和前台服务进行更改,与使用旧的 startService()
方法相比,它是否有任何其他性能改进,或者它只是 future 的最佳实践?
最佳答案
它既不是性能改进,也不是 yield ,也不是最佳实践。
从 API 26 开始,系统不允许后台应用创建后台服务。
因此,如果您的应用在后台(如果它也在前台也欢迎您这样做),您必须使用Context.startForegroundService(Intent)
而不是之前的 startService(Intent)
。服务必须在启动后的前 5 秒内调用 startForeground(int, Notification)
,否则系统将停止服务。
还应该提到的是,有信息表明从后台应用程序使用 startService(Intent)
启动服务的旧方法在当前版本的 Android Oreo 上仍然有效,但它将是很快修复。
因此,从 API 26 开始,无论何时您想要启动前台,您都希望使用新的 Context.startForegroundService(Intent)
方法而不是 startService(Intent)
服务。
关于java - 对前台服务使用 Context.startForegroundService(Intent) 而不是 Context.startService(Intent) 有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45525214/