是startService()然后在服务中调用startForeground与startForegroundService调用相同吗?

问题描述 投票:0回答:1

Context.startForegroungService 表示我们要启动前台服务。但我们可以通过 Context.startService 启动服务,并在服务中调用 startForeground 转为前台服务。

它们之间有什么行为差异吗? 如果我们不调用startForegroundService而是将一个正常启动的服务转为前台,我们会损失什么?

android service foreground-service
1个回答
0
投票

通过在服务中调用

startService()
,然后调用
startForeground()
,您可以手动启动服务,然后将其提升为前台服务。此方法通常用于与旧版 Android 版本兼容。

顺便说一下,Android Oreo(API级别26)中引入了

startForegroundService()
来直接启动前台服务。它在一次调用中结合了启动服务和使其成为前台服务,从而简化了流程。显然是为 Oreo 及以上版本保证兼容性。

© www.soinside.com 2019 - 2024. All rights reserved.