Iphone 位置背景-网络连接
我试图在后台发布数据,我希望定期收到来自的响应,以便我尝试使用CLLocation Manager。但是didUpdateLocation方法只调用一次。 请推荐我! 在这里输入代码Iphone 位置背景-网络连接,iphone,objective-c,Iphone,Objective C,我试图在后台发布数据,我希望定期收到来自的响应,以便我尝试使用CLLocation Manager。但是didUpdateLocation方法只调用一次。 请推荐我! 在这里输入代码 - (void)applicationDidEnterBackgroundUIApplication *)application { locationManager = [[CLLocationManager alloc] init]; locationManager.delegat
- (void)applicationDidEnterBackgroundUIApplication *)application
{
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyBest; // 100 m
[locationManager startUpdatingLocation];
UIApplication* app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_ QUEUE_PRIORITY_DEFAULT, 0), ^{
//Do the work associated with the task
// code for Posting Data Here
NSLog(@"backgroundTimeRemaining: %f", [[UIApplication sharedApplication] backgroundTimeRemaining]);
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
- (void)locationManagerCLLocationManager *)manager
DidUpdateLocationCLLocation*新位置
fromLocationCLLocation*旧位置
{
NSLog@Location改变
}
此方法只调用一次。当然,您应该很高兴代理至少收到一次消息。在后台执行代码中没有任何代码会延迟应用程序挂起。而且这种代码可以工作大约10分钟,并且会被系统杀死 如果您需要在后台跟踪用户位置,那么您可能只需在Info.plist ui backgroundmodes中为应用程序后台操作设置此模式,并添加选项location,您的应用程序将不会仅在内存占用过多的情况下暂停