使用处理程序的前台服务的CPU使用率

时间:2018-04-06 21:30:00

标签: android foreground android-doze

如何在应用关闭,屏幕锁定以及打盹模式处于活动状态时确保前台服务可以使用CPU?

有一些handletrareads,我在前台服务中使用postdelayed方法计划任务。我列出了我的测试用例:

  1. 前台服务中的部分唤醒:
    处理程序永远不会拖延。
  2. 没有唤醒锁,设备通过adb连接:
    处理程序永远不会延迟。(打盹模式,背景案例,屏幕锁定都尝试过。)
  3. 没有wakelock,app在屏幕上:
    处理程序永远不会拖延。
  4. 没有wakelock,应用程序在背景上,应用程序没有被销毁:
    处理程序可能会延迟。
  5. 没有wakelock,屏幕打开,应用程序被破坏:
    处理程序可能会延迟。
  6. 没有唤醒锁,屏幕锁定:
    处理程序总是在不知不觉中延迟。
  7. 没有唤醒,打瞌睡:
    处理程序总是在不知不觉中延迟。
  8. Documentations对前台服务cpu使用限制没有太多说明。是否存在与前台服务相关的错误?

1 个答案:

答案 0 :(得分:1)

处理程序postDelayed()的行为符合预期。 基于postDelayed()的{​​{3}}:

  

使Runnable r添加到要运行的消息队列中   经过指定的时间后。 runnable将运行   在此处理程序附加到的线程上。时间基础是   uptimeMillis()。 深度睡眠所花费的时间会增加额外的延迟   执行