Использование фоновых режимов в приложениях

Я разрабатываю приложение для iOS, которое обновляет данные на сервер каждую минуту. Я хочу работать с этим обновлением данных, даже когда приложение переходит в фоновый режим. Я включил "Фоновый режим" в "Возможности" и не проверял никаких фоновых опций. Также используется код ниже

UIApplication*    app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        NSLog(@"beginBackgroundTaskWithExpirationHandler");
        //[app endBackgroundTask:bgTask];
        //bgTask = UIBackgroundTaskInvalid;
    }];

Бес: Я прокомментировал [app endBackgroundTask:bgTask] а также bgTask = UIBackgroundTaskInvalid,

Теперь мое приложение хорошо работает в фоновом режиме.

Мой вопрос: есть ли шанс отклонить мое приложение из App Store из-за этого?

1 ответ

Когда вы используете эту фоновую задачу, она выполняется только в течение нескольких минут. (Протестируйте это на устройстве, не подключенном через XCode. Если вы тестируете это на симуляторе, вы можете почувствовать, что приложения продолжают работать в фоновом режиме, а в реальном мире - нет.)

Apple разрешает текущую фоновую работу только для очень узкого набора приложений (навигация, музыка, VOIP и т. Д.). Для фоновых сетевых запросов есть фоновые NSURLSession сеансы (для продолжения длительных загрузок / выгрузок, чтобы не повторять новые запросы). Он также имеет фоновую выборку для произвольно инициируемых запросов по усмотрению ОС, а не по заранее заданному расписанию и, конечно, не каждую минуту.

В итоге Apple не допустит приложений, которые каким-то образом обходят эти узко определенные сценарии. Кроме того, вы можете убить батарею пользователя и использовать его тарифный план, если вы постоянно инициировали новые запросы.

Другие вопросы по тегам