2015-03-29 5 views
3

Я знаю, что есть сотни тем, касающихся фоновой выборки на iOS. Я просто не могу решить свою проблему, чтобы получить фоновый выбор для моего приложения. Абсолютно существенным для результата моего приложения является наличие фонового изображения. Моя фоновая съемка отлично работает на симуляторе через Debug -> Simulate Background fetch, а также на устройстве с настройкой специальной схемы: «Запуск из-за события фоновой выборки». Я знаю, что он не выполняется, когда пользователь вынужден покинуть приложение. Я попытался заблокировать iPhone и подождать несколько часов, а затем разблокировать его, чтобы попытаться вызвать фоновый выбор. Ничего не произошло. На самом деле все работает нормально, но фоновый выбор просто НЕ выполняется на моем iPhone. Я знаю, что у iOS есть специальный алгоритм для вызова фоновых потоков, поэтому нужен маленький пациент. Но после двух месяцев ожидания, когда фоновая выборка произойдет автоматически, у меня больше нет пациентов. То, что я сделал:Фоновая выборка никогда не набирается

  1. App capabilites: Фоновая выборка активируется
  2. Info.plist: Необходимый режим фона: App загрузок контента из сети
  3. App Делегат:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){ 
     [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]]; 
    } 

    [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:2.0]; 
    return YES; 
} 

- (void) application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
{ 
    //Do my stuff 
    completionHandler (UIBackgroundFetchResultNewData); 
} 
+0

Я сделал то же самое в своем текущем приложении. Единственное, что отличается от моего кода, это функция: [application setMinimumBackgroundFetchInterval: UIApplicationBackgroundFetchIntervalMinimum]; UIApplicationBackgroundFetchIntervalMinimum - минимальное значение интервала, разрешенное и управляемое системой. Вероятно, 2.0 слишком медленный и может быть проблемой. Надеюсь, поможет. –

+0

Кроме того, когда приложение запускается в фоновом режиме, у него есть около тридцати секунд, чтобы выполнить все необходимые задачи и вызвать обработчик завершения. Если этот предел превышен, приложение приостанавливается, даже если задача не будет завершена. –

+0

Я также пробовал, что сказал Хавьер Флорес Шрифт. Я попробую еще раз. Моя фоновая задача очень короткая, она просто анализирует одну страницу, которая занимает, возможно, максимум 10 секунд. Это очень расстраивает. – tyler

ответ

1

Вы зашли, чтобы перейти в Настройки-> Общее-> фоновое обновление приложения и проверить, включено ли оно? Это может быть проблема ...

+0

Да, это было eneabled. Я сделал еще одну версию с FetchIntervalMinimum и вчера получил один фоновой выборки. Да! Хотя я уже пробовал это. Теперь это работает. Программирование странно. – tyler