问题
我想知道我们是否需要获取 WakeLock,或者 service.startForeground() 命令是否为我们完成了?我没有在文档中找到任何内容。
目标
我们希望删除可能会减慢服务启动速度的不必要的内容,因为我们希望尽快开始捕获传感器数据并且服务可能会频繁重启。
上下文
我们正在开发一个 Android 库,以大约 200 Hz 的频率捕获传感器数据长达几个小时(研究环境)。现在我们获取一个 WakeLock 并启动捕获服务作为 ForegroundService 以确保我们的捕获在设备未被使用时不会停止。
最佳答案
回答我自己的问题(如果没有其他人找到关于此的更多详细信息):
在我的理解中,“foreground”只是描述用户会注意到应用程序是否被终止,例如浏览大页面时。为此,要求系统尽量避免终止该服务。
- 仅仅因为前台服务正在运行可能并不意味着 CPU 无法进入深度 sleep 模式。
为了始终收集传感器数据,从用户定义的开始到停止,我们仍然需要自己获取WakeLock。
关于android - service.startForeground 是否意味着唤醒锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52002533/