【发布时间】:2009-12-07 14:56:41
【问题描述】:
当我的 iPhone 应用退出活动状态时,UIAccelerometer 的 sharedAccelerometer 单例实例停止向我的委托发送 accelerometer:didAccelerate: 消息。
是否有可能继续接收这些消息,类似于 CLLocationManagerDelegate 在应用处于非活动状态时如何继续接收更新?
如果有帮助的话,我宁愿不必完全禁用 idleTimer。
【问题讨论】:
当我的 iPhone 应用退出活动状态时,UIAccelerometer 的 sharedAccelerometer 单例实例停止向我的委托发送 accelerometer:didAccelerate: 消息。
是否有可能继续接收这些消息,类似于 CLLocationManagerDelegate 在应用处于非活动状态时如何继续接收更新?
如果有帮助的话,我宁愿不必完全禁用 idleTimer。
【问题讨论】:
不,至少不是最新可用的 iPhone SDK 形式。
【讨论】:
我会说这是可能的,因为 this app 在 AppStore 上:
但是,由于您的移动方式不同 在不同阶段的床上, 睡眠周期闹钟可以使用 iPhone 中的加速度计 监控您的运动并确定 你处于哪个睡眠阶段。
我不敢相信它必须在屏幕打开的情况下运行一整夜。 编辑: 看起来必须这样做! :P
所以他们也没有解决这个问题。那你做不到的机会就更多了……
您是否阅读过UIAccelerometer 的文档,其中是否提到了任何内容?如果它只是停止发送加速事件,那么您无能为力。
但是,当我的应用失去焦点(手机被锁定时)时,我会尝试再次将加速度计委托设置给我的班级。您可以从 UIApplication 获取该通知(失去焦点通知)。尝试这样做,以防应用失去焦点时加速度计的委托设置为 nil。
【讨论】: