问题
我想知道我们是否需要获取WakeLock还是service.startForeground()命令是否对我们有用?我没有在文档中找到任何内容。
目标
我们要删除不必要的内容,因为我们希望尽快开始捕获传感器数据并且服务可能会频繁重启,这可能会减慢服务启动的速度。
上下文
我们正在开发一个Android库,以在几个小时(研究环境)中捕获〜200 Hz的传感器数据。现在,我们获取一个WakeLock并以ForegroundService的身份启动捕获服务,以确保在不使用设备时不停止捕获。
答案 0 :(得分:5)
要回答我自己的问题(如果没有人找到更多详细信息):
在我的理解中,“ 前景”仅表示用户会注意到该应用是否被杀,例如浏览大页面时。因此,系统被要求尝试避免终止该服务。
为了从用户定义的开始一直一直收集传感器数据,我们仍然需要自己获取 WakeLock 。
答案 1 :(得分:0)
否,唤醒锁可用于确保您的前台服务在设备进入睡眠状态时运行
如果必须使用部分唤醒锁,请遵循以下建议:
- 确保应用的某些部分保留在前台。例如,如果您需要运行服务,请启动前台服务。直观地向用户表明您的应用仍在运行。
https://developer.android.com/topic/performance/vitals/wakelock#best_practices