service.startForeground是否暗示唤醒锁?

时间:2018-08-24 10:29:10

标签: android wakelock android-wake-lock foreground-service

问题

我想知道我们是否需要获取WakeLock还是service.startForeground()命令是否对我们有用?我没有在文档中找到任何内容。

目标

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

上下文

我们正在开发一个Android库,以在几个小时(研究环境)中捕获〜200 Hz的传感器数据。现在,我们获取一个WakeLock并以ForegroundService的身份启动捕获服务,以确保在不使用设备时不停止捕获。

2 个答案:

答案 0 :(得分:5)

要回答我自己的问题(如果没有人找到更多详细信息):

在我的理解中,“ 前景”仅表示用户会注意到该应用是否被杀,例如浏览大页面时。因此,系统被要求尝试避免终止该服务。

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

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

答案 1 :(得分:0)

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

  

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

     
      
  • 确保应用的某些部分保留在前台。例如,如果您需要运行服务,请启动前台服务。直观地向用户表明您的应用仍在运行。
  •   

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