除了我的 iPhone 设备,我可以在所有设备(模拟器和 iPad 设备)上接收位置更新。
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
self.locationManager.pausesLocationUpdatesAutomatically = NO;
self.locationManager.delegate = self;
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *newLocation = locations.lastObject;
NSLog(@"didUpdateLocations newLocation = %@", newLocation);
.
.
}
只要应用程序在前台,我就会收到didUpdateLocations (NSLog 消息),但在我按下主页按钮(即应用程序进入后台)后,我停止在didUpdateLocations 中接收通知。“控制台”不显示 NSLog 消息,此后状态栏中的位置图标也会在 10 秒内消失。
什么有效,什么无效-
似乎在我的其他 iPhone 3gs 上安装的 iOS 6 工作正常。小位置图标不会消失。
在装有 iOS 7 的 iPad 设备上进行测试,应用程序在后台继续运行。
所有带有 iOS 6 和 iOS 7 的模拟器(iPhone 和 iPad)都可以按预期工作。
当我在装有 iOS 7 的 iPhone 4 上对其进行测试时,该应用程序不会在后台运行。所以很可能,这个问题只存在于 iOS 7(甚至某些特定的 iPhone 设备)上。