Какие методы делегатов вы используете? Можете ли вы опубликовать то, что вы пробовали (с точки зрения кода) здесь? Обратите внимание, что после перемещения вашего приложения в фоновый режим вы можете запускать только краткосрочные задачи , чтобы сохранить время автономной работы.
Этот пример предоставлен Apple:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication* app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
// Clean up any unfinished task business by marking where you.
// stopped or ending the task outright.
[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, preferably in chunks.
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
Если вы хотите выполнять более длительные задачи, вам требуются специальные разрешения, и даже в этом случае вы можете выполнять только определенный набор действий. Они обсуждаются здесь:
Руководство по программированию приложений для iOS: состояния приложений и многозадачность