Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android service.startForeground是否表示唤醒锁定?_Android_Wakelock_Android Wake Lock_Foreground Service - Fatal编程技术网

Android service.startForeground是否表示唤醒锁定?

Android service.startForeground是否表示唤醒锁定?,android,wakelock,android-wake-lock,foreground-service,Android,Wakelock,Android Wake Lock,Foreground Service,问题 我想知道我们是否需要获取WakeLock,或者service.startForeground()命令是否为我们这样做?我在文档中没有找到任何东西 目标 我们希望删除可能会减慢服务启动速度的不必要内容,因为我们希望尽快开始捕获传感器数据,并且服务可能会频繁重启 上下文 我们正在开发一个Android库,以捕获约200 Hz的传感器数据,最多可以持续几个小时(研究环境)。现在,我们获得一个WakeLock并启动捕获服务作为ForegroundService,以确保在设备未使用时不会停止捕获。要

问题

我想知道我们是否需要获取WakeLock,或者service.startForeground()命令是否为我们这样做?我在文档中没有找到任何东西

目标

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

上下文

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

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

根据我的理解,“前台”只是描述了用户在浏览一个大页面时会注意到应用程序是否被关闭。因此,要求系统尽量避免终止服务

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

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

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

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

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

因此,如果我们没有获得前台服务的唤醒锁,那么该服务将在睡眠模式下暂停?如果是,那么之后服务会从停止的位置继续还是重新启动?据我所知:是的,服务可以进入睡眠模式,之后将继续(而不是重新启动)。