我有一个应用程序定期(通过NSTimer
)使用locationManager:startUpdatingLocation
询问用户位置我希望locationManager在后台运行,因此在信息中输入了“UIBackgroundModes = location”。 plist文件。
我的问题是我没有看到我期望的结果,我正确地认为当我按下主页按钮时,应用程序委托调用“applicationDidEnterBackground”但是虽然允许locationManager继续我的NSTimer被暂停(并且作为结果是它没有调用startUpdatingLocation定期查询设备位置)。任何想法/解决方案都将非常感谢......
加里。
答案 0 :(得分:3)
进入后台时,所有NSTimers均无效。您需要通过CLLocationManager进行检查以进行任何更改。
只需保持startUpdateLocation运行,您委托将收到该位置的任何重大更改。
在后台运行时,您只会根据手机信号塔收到位置更改。
答案 1 :(得分:1)
如果您阅读-applicationDidEnterBackground:的文档,则会发现是,您的计时器无效。此外,iOS应用程序编程指南会告诉您如何track location from the background。