service.startForeground 是否意味着唤醒锁?
Does service.startForeground imply wakelock?
问题
我想知道我们是否需要获取 WakeLock,或者 service.startForeground() 命令是否为我们完成了?我在文档中没有找到任何内容。
目标
我们希望删除可能会减慢服务启动速度的不必要内容,因为我们希望尽快开始捕获传感器数据并且服务可能会频繁重启。
上下文
我们正在开发一个 Android 库来捕获大约 200 Hz 的传感器数据长达几个小时(研究环境)。现在我们获取一个 WakeLock 并启动捕获服务作为 ForegroundService 以确保我们的捕获在不使用设备时不会停止。
回答我自己的问题(如果没有其他人找到更多详细信息):
在我的理解中,“foreground”只是描述用户会注意到应用程序是否被终止,例如浏览大页面时。为此要求系统尽量避免杀死该服务。
- 仅仅因为前台服务是 运行 可能并不意味着
CPU 无法进入深度睡眠模式。
为了从用户定义的开始到停止一直收集传感器数据,我们仍然需要自己获取WakeLock。
不,唤醒锁可用于确保您的前台服务运行当设备进入睡眠状态时
If you must use partial wake locks, follow these recommendations:
- Make sure some portion of your app remains in the foreground. For example, if you need to run a service, start a foreground service instead. This visually indicates to the user that your app is still running.
https://developer.android.com/topic/performance/vitals/wakelock#best_practices
问题
我想知道我们是否需要获取 WakeLock,或者 service.startForeground() 命令是否为我们完成了?我在文档中没有找到任何内容。
目标
我们希望删除可能会减慢服务启动速度的不必要内容,因为我们希望尽快开始捕获传感器数据并且服务可能会频繁重启。
上下文
我们正在开发一个 Android 库来捕获大约 200 Hz 的传感器数据长达几个小时(研究环境)。现在我们获取一个 WakeLock 并启动捕获服务作为 ForegroundService 以确保我们的捕获在不使用设备时不会停止。
回答我自己的问题(如果没有其他人找到更多详细信息):
在我的理解中,“foreground”只是描述用户会注意到应用程序是否被终止,例如浏览大页面时。为此要求系统尽量避免杀死该服务。
- 仅仅因为前台服务是 运行 可能并不意味着 CPU 无法进入深度睡眠模式。
为了从用户定义的开始到停止一直收集传感器数据,我们仍然需要自己获取WakeLock。
不,唤醒锁可用于确保您的前台服务运行当设备进入睡眠状态时
If you must use partial wake locks, follow these recommendations:
- Make sure some portion of your app remains in the foreground. For example, if you need to run a service, start a foreground service instead. This visually indicates to the user that your app is still running.
https://developer.android.com/topic/performance/vitals/wakelock#best_practices