CMMotionManager的多个实例,确定更新间隔

时间:2016-12-07 19:22:32

标签: ios core-motion

根据Apple的CMMotionManager文档,"应用程序应该只创建一个CMMotionManager类的实例。此类的多个实例可能会影响从加速度计和陀螺仪接收数据的速率。"

我已经创建了一个单例来封装它,但我想知道的是我应该如何处理更新间隔。如果经理的每个消费者需要为设备动作更新设置不同的更新间隔,您如何处理它们?我最初的想法是将其设置为所提供的最快更新间隔,并在用户被移除时回退到下一个最快(停止观察运动更新),但如果特定消费者需要设置某个间隔,这可能会导致问题。

有没有人遇到过这个问题?如果是这样,你是如何解决的?

1 个答案:

答案 0 :(得分:1)

我过去在一个应用程序中使用过多个动作管理器,它不会大幅影响应用程序性能。但是,如果它影响实时应用程序的行为/性能,我会将运动管理器设置为所需的最高频率,但是以所请求的速率将运动数据转发给消费者。

以高频率请求运动数据对cpu使用或电池没有明显影响,影响电池CPU /电池使用量的因素是每次运动更新后进行的后处理量。

来源:个人经验,我正在开发一款已投入生产的应用程序,该应用程序使用设备动态数据预测用户行为。