在后台执行代码

| 我有一个应用程序,该应用程序定期(通过
NSTimer
)使用
locationManager:startUpdatingLocation
询问用户位置。我希望locationManager在后台运行,因此已在info.plist文件中输入\“ UIBackgroundModes = location \”。 我的问题是我没有看到预期的结果,我是在想当我按下主屏幕按钮时,应用程序代表调用\“ applicationDidEnterBackground \”,但尽管允许locationManager继续执行,但我的NSTimer被挂起了(因此它不会调用startUpdatingLocation来定期查询设备位置)。任何想法/解决方案将不胜感激... 加里
已邀请:
进入后台时,所有NSTimer均无效。您需要通过CLLocationManager检查是否有任何更改。 只要保持startUpdateLocation运行,您委托的位置就会收到任何重大更改。 在后台运行时,您只会收到基于手机信号塔的位置更改。
如果您阅读有关-applicationDidEnterBackground的文档:您会发现,是的,您的计时器无效。此外,《 iOS应用程序编程指南》还告诉您确切如何从后台跟踪位置。

要回复问题请先登录注册