选择正确的活动协调器策略
活动协调器提供多个模板策略,且应根据任务所需的资源选择这些策略。
了解活动工作负载
确定任务所需的活动协调器资源,以及运行任务所应满足的条件。 使用性能跟踪来分析任务是一个很好的起点。
选择资源
选择从性能跟踪派生的资源。 这些资源应为活动工作负荷会影响到的资源。 请勿忘记隐式消耗或影响的资源,例如用户空闲和功耗。
选择条件
根据工作负荷的资源消耗情况选择条件,如性能跟踪中所示。 一般情况下,建议将最佳条件用于所需资源;如有必要,当策略在所需时间范围内无法满足需求时,则应使用较低的条件来更新策略。 首先使用最佳条件,并在因不满足策略(即,不满足其资源条件)而无法满足任意截止时间之前,在执行前首选过渡到较低的条件。 此举可让 API 有机会最大程度地减少活动所造成的用户与系统影响,同时提高活动运行的机会。
对于资源消耗量微不足道或较低的工作负荷,或许可使用 ACTIVITY_COORDINATOR_CONDITION_MEDIUM 等条件,而不会对系统产生不利影响。 消耗量较高的工作负荷更适合使用此类条件不太可能影响用户体验的条件,比如 ACTIVITY_COORDINATOR_CONDITION_GOOD。 此类工作负荷在使用较低条件时更有可能产生严重影响,且这些影响在本质上可能并非暂时性的。 例如,如果使用网络时会进行计量和计费,则在中等网络条件下使用 Internet 可能会给用户带来财务成本。
除了性能跟踪中的计算机功能之外,还应记住应用程序支持的设备类型和配置类型。 目标环境中的可变性可能意味着工作负荷在影响用户、系统以及在给定时间段内满足策略的可能性方面存在差异。
截止时间
可能存在与活动关联的各种时间限制。 对于运行时间较长的工作或在相对较短时间内可开始或完成的工作,使用较低的条件来提高策略打开的可能性可能会更好地完成此类工作。 运行时间较短的工作或具有松散时间要求的工作可能会使用最佳条件来满足其需求。 在较长的时间范围内,目标系统可能存在低资源消耗期。 如果临近截止时间,则建议在被迫改用定期执行方法之前仍未取得足够进展的情况下,在截止时间之后或临近截止时间之前将策略降级。 然后,可在完成后将重复工作切换到原始策略。
模板策略
此 API 附带一组模板策略,它们适用于可用于简单开始使用此 API 的典型工作模式。 对于执行本地计算的大多数程序,则建议使用模板策略。
策略建议
在提供的模板策略中,如果不确定应选择哪个模板策略,ACTIVITY_COORDINATOR_POLICY_TEMPLATE_GOOD 则应适合大多数情况。 此策略可最大程度减少用户影响,同时为此策略充分打开以便完成开发人员的工作提供合理的可能性。
自定义模板策略
模板策略可能会省略某些资源(例如 GPU),而这些资源在一般用例中可能并非必需。 根据预期的工作负荷,可将使用模板策略来自定义策略作为起点。
从头开始生成策略
需实现完全控制的开发人员可先使用空策略:ACTIVITY_COORDINATOR_POLICY_TEMPLATE_EMPTY。 但对于这些场景,建议先使用 ACTIVITY_COORDINATOR_POLICY_TEMPLATE_BASE,而它指定了适用于大多数情况的最低推荐资源与条件。 它有助于确保在从头开始配置策略时,不会错误地省略重要的资源条件,例如用户空闲、CPU 与能耗资源。