CPU 密集型服务需要 WakeLock 吗?
Do you need a WakeLock for CPU intensive services?
如果我的应用程序应该使用 WakeLock,我从文档中并不清楚。在所有情况下,这些服务都以 startForeground()
:
开始
- 处理音频并在
AudioTrack
上播放。 (CPU 强化)。
- 处理音频并编码为文件。 (CPU 强化)。
- 从 Google Play 服务接收定期位置更新(间隔 5-10 秒,可能 CPU 强度较低)。
我已经在我的设备(库存 Android 4.4 和 5.0)上测试了前两个 > 15 分钟(可能比他们需要停留的时间更长 运行),并且服务继续运行 屏幕关闭且没有 WakeLock。第三个我还没有测试过。我意识到设备可以具有不同的特性。
我应该为这些服务使用 WakeLock,还是 CPU activity 阻止设备休眠?当设备不被使用时,它们不应该停止。
Should I be using a WakeLock for these services
如果您不想让设备进入睡眠状态,并且没有其他任何东西可以让设备保持清醒状态,可以。
does the CPU activity keep the device from sleeping?
没有
the services continue running with the screen off and no WakeLock
然后:
您的设备已接通电源(并且您有相关的开发人员设置以在接通电源时保持 CPU 开启),或
其他东西拿着 WakeLock
,或
您的硬件专门用于不让设备进入睡眠模式,或者
您误解了测试结果
如果我的应用程序应该使用 WakeLock,我从文档中并不清楚。在所有情况下,这些服务都以 startForeground()
:
- 处理音频并在
AudioTrack
上播放。 (CPU 强化)。 - 处理音频并编码为文件。 (CPU 强化)。
- 从 Google Play 服务接收定期位置更新(间隔 5-10 秒,可能 CPU 强度较低)。
我已经在我的设备(库存 Android 4.4 和 5.0)上测试了前两个 > 15 分钟(可能比他们需要停留的时间更长 运行),并且服务继续运行 屏幕关闭且没有 WakeLock。第三个我还没有测试过。我意识到设备可以具有不同的特性。
我应该为这些服务使用 WakeLock,还是 CPU activity 阻止设备休眠?当设备不被使用时,它们不应该停止。
Should I be using a WakeLock for these services
如果您不想让设备进入睡眠状态,并且没有其他任何东西可以让设备保持清醒状态,可以。
does the CPU activity keep the device from sleeping?
没有
the services continue running with the screen off and no WakeLock
然后:
您的设备已接通电源(并且您有相关的开发人员设置以在接通电源时保持 CPU 开启),或
其他东西拿着
WakeLock
,或您的硬件专门用于不让设备进入睡眠模式,或者
您误解了测试结果