Фоновая выборка выполняется только один раз

Извините за мой глупый вопрос, но я не могу понять, как вызывается фоновая загрузка в ios7. Вот код:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [application setMinimumBackgroundFetchInterval:20];
    return YES;
}

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Fetch called");
    completionHandler(UIBackgroundFetchResultNoData);
    [UIApplication sharedApplication].applicationIconBadgeNumber += 1;
}

Проблема в том, что я установил интервал в 20 секунд, но он выполняется только один раз. Мне такое поведение кажется странным. Возможно я ошибаюсь и симуляция фоновой выборки по умолчанию выполняет ее только один раз, но на реальном устройстве она будет делать это периодически. Как я могу быть уверен, что он будет вызываться каждые 20 секунд?? Пожалуйста помоги!


person PAcan    schedule 15.10.2013    source источник


Ответы (1)


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

person Christopher Rogers    schedule 21.10.2013