当应用程序处于非活动状态时可以接收 UIAccelerometer 更新吗?
Posted
技术标签:
【中文标题】当应用程序处于非活动状态时可以接收 UIAccelerometer 更新吗?【英文标题】:Possible to receive UIAccelerometer updates when app is inactive? 【发布时间】:2009-12-07 14:56:41 【问题描述】:当我的 iPhone 应用退出活动状态时,UIAccelerometer 的 sharedAccelerometer 单例实例停止向我的委托发送 accelerometer:didAccelerate: 消息。
是否有可能继续接收这些消息,类似于 CLLocationManagerDelegate 在应用处于非活动状态时如何继续接收更新?
如果有帮助的话,我宁愿不必完全禁用 idleTimer。
【问题讨论】:
【参考方案1】:不,至少不是最新可用的 iPhone SDK 形式。
【讨论】:
【参考方案2】:我会说这是可能的,因为 this app 在 AppStore 上:
但是,由于您的移动方式不同 在不同阶段的床上, 睡眠周期闹钟可以使用 iPhone 中的加速度计 监控您的运动并确定 你处于哪个睡眠阶段。
我不敢相信它必须在屏幕打开的情况下运行一整夜。 编辑: 看起来必须这样做! :P
所以他们也没有解决这个问题。那你做不到的机会就更多了……
您是否阅读过UIAccelerometer
的文档,其中是否提到了任何内容?如果它只是停止发送加速事件,那么您无能为力。
但是,当我的应用失去焦点(手机被锁定时)时,我会尝试再次将加速度计委托设置给我的班级。您可以从 UIApplication 获取该通知(失去焦点通知)。尝试这样做,以防应用失去焦点时加速度计的委托设置为 nil
。
【讨论】:
感谢您为我指明这个应用程序的方向。我下载了它并且可以确认:1)该应用程序必须整夜保持活动状态,2)您无法锁定手机,3)您被指示将手机正面朝下放在床上,4)您被指示保持手机手机连接到充电器。从本质上讲,该应用程序似乎禁用了 idleTimer 并使屏幕整夜保持活动状态。只要屏幕朝下并且手机正在充电,这不是一个大问题,但对于我的应用程序来说,充电器不太可能存在。 那么,恐怕你不能做你想做的,但你可以尝试最后一件事。看看我更新的答案,祝你好运:)以上是关于当应用程序处于非活动状态时可以接收 UIAccelerometer 更新吗?的主要内容,如果未能解决你的问题,请参考以下文章
Ios:当应用程序处于非活动状态时,如何让我的应用程序返回根视图
当应用程序处于非活动状态时,GCM 推送通知不适用于 iOS