根据苹果的CMMotionManager文档,“一个应用程序应该只创建CMMotionManager类的一个实例。这个类的多个实例会影响从加速计和陀螺仪接收数据的速率。”
我已经创建了一个单例来封装它,但我想知道的是我应该如何处理更新间隔。如果管理器的每个使用者需要具有不同的设备运动更新更新间隔,您如何处理这些更新间隔?我最初的想法是将其设置为提供的最快更新间隔,并在用户被移除时回退到下一个最快的更新间隔(停止观察运动更新),但如果特定的消费者需要设置特定的间隔,这可能会导致问题。
有没有人遇到过这个问题?如果是这样,你是如何解决的?
发布于 2016-12-09 23:40:24
我过去在一个应用程序中使用了多个动作管理器,这对应用程序的性能没有太大影响。然而,如果它影响了实时应用程序的行为/性能,我会将动作管理器设置为所需的最高频率,但会将动作数据以其请求的速率转发给消费者。
以高频率请求运动数据对cpu使用率或电池使用率没有明显影响,会影响电池cpu/电池使用率的是每次运动更新后进行的后处理数量。
来源:个人经验,我一直在开发一个应用程序,这个应用程序已经投入生产5年了,这个应用程序使用设备运动数据来预测用户行为。
https://stackoverflow.com/questions/41025661
复制相似问题