startMonitoringSignificantLocationChanges没有被解雇?

时间:2011-10-16 17:58:04

标签: iphone ios4 core-location

我正在测试一个在带有IOS 4.01的3GS上使用startMonitoringSignificantLocationChanges的应用程序(我希望我的应用程序可以在任何版本的IOS4中运行,所以我没有在此设备上升级操作系统)。

info.pllist有一个“注册位置更新”背景键(startMonitoringSignificantLocationChanges不需要,但在应用程序的其他位置需要)。

我发现如果设备处于睡眠模式且我的应用程序在后台,即使我长途旅行(经过相当多的手机信号塔)并且很长时间,也不会触发重要的位置更新。但是只要按下Home键唤醒设备(我的应用程序仍在后台,前台没有任何内容) - 我的应用程序中的位置事件处理程序会被该区域的有效位置触发(我可以验证通过检查超过1000米的精度,这是一个重要的位置事件。

这违背了监控重要位置变化的整体想法,因为用户不会随着设备处于活动状态而旅行。

不幸的是我没有更高级操作系统的设备来检查(我的所有其他设备都不是iPhone,而且它们不支持startMonitoringSignificantLocationChanges。)

这是一个知道问题还是我做错了什么?

2 个答案:

答案 0 :(得分:0)

您需要确保将AppDelegate设置为CLLocationManagerDelegate,并设置正确的方法以在触发重大更改时接收回调。如果你有一个不同的班级设置为代表,你的应用程序转到后台...很可能是班级不会醒来接收它们。

尝试设置您的AppDelegate以接收它们......然后致电您的班级以完成您需要完成的任何工作。

答案 1 :(得分:0)

您是否查看了this question及其类似主题的答案?

在没有看到您的代码的情况下很难说,但是在您的背景行为实现中可能缺少某些内容?