Как изящно завершить задачу в обработчике истечения срока, прежде чем iOS завершит работу приложения? - PullRequest
2 голосов
/ 28 июля 2011

Мы хотим выйти из нашего приложения после вызова обработчика срока действия.Иногда это работает, но, похоже, бывают случаи, когда он просто сильно убивает процесс, даже если мы завершаем фоновую задачу, вызывая endBackgroundTask.Похоже, что наш процесс выхода из системы в этом случае занимает слишком много времени, а iOS просто убивает его.Это не должно быть долгой задачей, но есть ли способ запросить дополнительное время?

 if ([app respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]) {
        bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
            // Synchronize the cleanup call on the main thread in case
            // the task actually finishes at around the same time.
            dispatch_async(dispatch_get_main_queue(), ^{
                if (bgTask != UIBackgroundTaskInvalid) {

                    backgroundKilled = true;

                    [self logoutAll]; 

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

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Вот хороший Обзор делегата UIApplication , в котором описывается, через что приложение проходит после завершения.

0 голосов
/ 29 июля 2011

iOS дает вам десять минут для вашей фоновой задачи.Ваш процесс выхода из системы занимает столько времени?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...