service.startForeground是否意味着唤醒锁?

问题描述 投票:3回答:2

我想知道我们是否需要获取WakeLock或者service.startForeground()命令是否为我们执行此操作?我没有在文档中找到任何内容。

目标

我们希望删除可能会减慢服务启动的不必要的东西,因为我们希望尽快开始捕获传感器数据,并且可能会频繁重启服务。

上下文

我们正在开发一个Android库来捕获大约200 Hz的传感器数据长达几个小时(研究环境)。现在我们获取一个WakeLock并将捕获服务作为ForegroundService启动,以确保在不使用设备时不会停止捕获。

android wakelock android-wake-lock foreground-service
2个回答
5
投票

回答我自己的问题(如果没有其他人发现更多细节):

在我的理解中,“前景”只描述用户会注意到应用程序是否被杀死,例如浏览大页面时因此,要求系统尽量避免终止服务。

  • 仅仅因为前台服务正在运行可能并不意味着CPU无法进入深度睡眠模式。

为了从用户定义的开始到停止始终收集传感器数据,我们仍然需要自己获取WakeLock。


0
投票

不,可以使用唤醒锁来确保您的前台服务在设备进入睡眠状态时运行

如果必须使用部分唤醒锁,请遵循以下建议:

  • 确保您应用的某些部分仍然在前台。例如,如果您需要运行服务,请改为启动前台服务。这可以直观地向用户显示您的应用仍在运行。

https://developer.android.com/topic/performance/vitals/wakelock#best_practices

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