我正在尝试记录用户随时间的位置。如果用户在移动,则它可以正常工作,并且委托方法 didUpdateToLocation 会被可靠地调用。但是,如果用户静止并且应用程序在后台运行,那么在一段时间后,将不再调用委托方法。要重新启动它,需要将该应用程序购买到前台。一旦激活,委托方法就会再次可靠地调用。
我最初认为这可能是由于 CLLocationManager 对象是在 ViewController 中声明的,因此我将其更改为在 AppDelegate 中声明,但这也没有帮助。
我也尝试过 distanceFilter 属性,但无济于事。我目前正在视图控制器中使用以下代码进行设置。请注意,对象本身是在 AppDelegate 对象中声明和初始化的。
app.locationManager.delegate = self;
app.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
app.locationManager.distanceFilter = kCLDistanceFilterNone;
[app.locationManager startUpdatingLocation];
还有其他人遇到过这个问题吗?任何指示将不胜感激。我已经为此苦苦挣扎了几天。
iOS 6 引入了 CLLocationManager 属性pausesLocationUpdatesAutomatically。当您设置 CLLocationManager 时,需要将其设置为 NO,如下所述:http://www.stackoverflow.com/a/12781634/700769 http://www.stackoverflow.com/a/12781634/700769
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)