2015-08-27 2 views
0

Я пытаюсь обновить местоположение на сервере, когда приложение не запущено. Я получаю обновление местоположения при изменении местоположения пользователя, но веб-сервис не вызван ... Любая помощь очень ценится.iOS: Как вызвать веб-сервис, когда приложение завершено пользователем

+2

Я думаю, что вы получаете ваши термины неправильно? Завершение означает, что он не работает, поэтому совершенно невозможно сделать что-либо, если приложение не работает. Однако из-за того, что вы говорите: «Я получаю обновление местоположения», возможно, вы на самом деле имеете в виду, когда приложение находится в фоновом режиме? Приложение в фоновом режиме и завершенное приложение - это две совершенно разные вещи. Код в ответе Vanson применим, если приложение находится в фоновом режиме, но, очевидно, оно не применимо, если приложение завершено. – Gruntcakes

ответ

0

Вам необходимо выполнение фоновая задача, как этот

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    bgTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:^{ 
     // Clean up any unfinished task business by marking where you 
     // stopped or ending the task outright. 
     [application 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, preferably in chunks. 

     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }); 
}