0

我正在做一些关于在应用程序处于后台时读取加速度计数据的研究,我发现这个问题没有纯粹的解决方案。您可以使用来自其他 api 的一些回调,例如播放音频、录制音频、接收位置更新……等等。但是我发现了一件有趣的事情。

当我启动下面的功能并点击主页按钮时,应用程序会进入后台,但“正在运行”消息会不断将自身写入日志。

- (void)updateAccelerometer {
    while (YES) {
        NSLog(@"running");
    }
}

另一个有趣的事情是我关闭了背景模式。

我的问题是……我可以在应用程序处于后台时使用这种无限循环方法来读取 CMMotionManager 的加速度计数据吗?它看起来像一个解决方案。有人用过吗?有人知道在后台读取 CMMotionManager 数据的其他方法吗?

任何想法链接都可能会有所帮助。如果您有想法,请与我分享。谢谢你的时间。

4

1 回答 1

0

在为所有应用程序在后台完成工作提供的默认时间之后,这将不起作用。如果您在设备上尝试,您会发现它可能会在大约 60 秒后停止。不仅如此,处理器执行这种循环是可怕的,并且会大大降低机器速度,尤其是在主线程上时。如果您明白我的意思,曾经有一些应用程序作为暖手器销售,可以做到这一点。

于 2013-12-28T20:59:03.000 回答