Фоновая загрузка, даже если телефон заблокирован - PullRequest
1 голос
/ 28 ноября 2011

Я пытаюсь реализовать приложение для iPhone, которое должно просто загружать некоторый контент из Интернета.Эта загрузка довольно большая, поэтому я реализовал ее в качестве фоновой задачи, чтобы дать пользователю возможность делать другие вещи со своим телефоном во время загрузки.Моя проблема в том, что если пользователь нажимает кнопку блокировки (или если активируется автоматическая блокировка), applicationWillResignActive: в AppDelegate вызывается и примерно через десять секунд загрузка прерывается, потому что телефон не входит в фоновый режим и просто остается неактивным.

Мой вопрос: что я делаю не так?Как я могу убедиться, что загрузка продолжается, даже если телефон заблокирован?

Заранее спасибо.

1 Ответ

0 голосов
/ 28 ноября 2011

Вам необходимо окружить загружаемый код блоком фоновой задачи следующим образом:

UIApplication* app = [UIApplication sharedApplication];
        UIBackgroundTaskIdentifier bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
            //here you need to finish what you are doing evven if you've not finished yet, otherwise your app will be killed
            [app endBackgroundTask:bgTask];
        }];

        //here comes your downloading code

        [app endBackgroundTask:bgTask];

Это даст вам 10 минут (согласно некоторым другим сообщениям) для выполнения кода в фоновом режиме ...

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