3
我經歷瞭如此多的鏈接,即使在此之後,我還沒有找到獲取經緯度的適當解決方案。當應用程序處於後臺時向服務器發送經緯度
Periodic iOS background location updates
iOS long-running background timer with "location" background mode
我從一些鏈接和論壇嘗試,但它正在爲僅3分鐘,然後應用程序完全不更新用戶的位置。
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
//create new uiBackgroundTask
__block UIBackgroundTaskIdentifier bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
//and create new timer with async call:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
[locationManager startUpdatingLocation];
NSTimer* t = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(startTrackingBg) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
});
}
-(void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
// store data
CLLocation *newLocation = [locations lastObject];
//tell the centralManager that you want to deferred this updatedLocation
if (_isBackgroundMode && !_deferringUpdates)
{
_deferringUpdates = YES;
[locationManager allowDeferredLocationUpdatesUntilTraveled:CLLocationDistanceMax timeout:10];
}
}
@Santo ...請檢查該bro..and試圖幫助我.. http://stackoverflow.com/questions/37338466/sending-current-location-to-server-in-background- as-well-as-in-running-app- –
@SurajSukale首先讓我知道,你在建立時是否獲得了當前位置? – Santo
沒有兄弟...其實我在這個應用程序開發非常新(第一次工作在這個特定的域位置)....你能幫我解決這個 –