Я реализовал обновление местоположения фона в ios на основе таймера (как каждые 1 мин). Он работает хорошо и получает местоположение (значения lat и long), но после 15 он отключается. Я больше не могу его запускать. Может кто-нибудь, пожалуйста, помогите мне.Через 15 минут. Обновление фона не работает в ios?
Это мой код ..
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[GlobalClass sharedGlobals].locationManager stopMonitoringSignificantLocationChanges];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
[[GlobalClass sharedGlobals].locationManager requestAlwaysAuthorization];
}
[[GlobalClass sharedGlobals].locationManager startMonitoringSignificantLocationChanges];
int timeInterval = 60; // (i.e., 1 mins)
if (!setTimer) {
setTimer = [NSTimer scheduledTimerWithTimeInterval:timeInterval target: self
selector: @selector(toMakeServerCall) userInfo: nil repeats: YES];
}
}
#pragma mark - Send Current lat & long to the server
- (void)toMakeServerCall {
NSString *latitude = [NSString stringWithFormat:@"%f",[[GlobalClass sharedGlobals] currentLocationObject].coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f",[[GlobalClass sharedGlobals] currentLocationObject].coordinate.longitude];
NSLog(@"Current Lat is :%@ \n Current Long is :%@ ",latitude,longitude);
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http:www.google.com/myLatitude is: %@ and My Longitude is: %@",latitude,longitude]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
}
Спасибо заранее.
Но все же приложение не будет работать каждую минуту. Значительные изменения местоположения обновляются примерно в пару раз максимум за 10-15 минут, даже если есть значительное обновление местоположения. Есть ли другой способ сохранить приложение в фоновом режиме и обновить местоположение на моем сервере каждую секунду? Например, если я хочу точно отслеживать маршрут, пройденный автомобилем, обновив его местоположение на моем сервере. –
Во-первых, существенные изменения практически не меняются каждую секунду, потому что, по моему опыту, расстояние, на которое вы должны двигаться, достигает больших результатов (например, не метров, а километров). Если вам нужны постоянные обновления по мере движения автомобиля, вам необходимо (а) зарегистрироваться для режима фоновой навигации на экране возможностей; и (б) затем использовать стандартные службы определения местоположения. Но, опять же, вы не используете таймеры с услугами определения местоположения. Службы местоположения сообщают вам, когда пройдено достаточно расстояния, чтобы инициировать обновление местоположения. – Rob
Спасибо @Rob. Мое фактическое требование: мне нужно обновить местоположение во время состояния фонового/приложения с динамическим интервалом времени (1 час, 1 день, 3 дня и т. Д.). В таком случае, что мне нужно делать? Если возможно, можете ли вы поделиться любым примером кода? – Surezz