3 уведомления, каждые 20 секунд, тогда это 60 секунд

отаю над вызовом VOIP и добавляю поддержку iOS <10. Для входящего вызова VOIP, когда приложение работает в фоновом режиме, я использую UILocalNotification (не рекомендуется в iOS 10).

Чтобы сделать звонок 60 секунд (или 1 минуту), я использую этот код

    count = 0;
                    apnTimer = [NSTimer scheduledTimerWithTimeInterval:3.0
                                                                target:self
                                                              selector:@selector(showIncomingCall:)
                                                              userInfo:userInfo
                                                               repeats:YES];
    self.backgroundTask = [application beginBackgroundTaskWithExpirationHandler:^{
                        NSLog(@"ALVOIP : BACKGROUND_HANDLER_NO_MORE_TASK_RUNNING.");
                        [application endBackgroundTask:self.backgroundTask]; 
                        self.backgroundTask = UIBackgroundTaskInvalid;
                    }];


    -(void)showIncomingCall:(NSTimer *)timer
{
    if (count < 60)
    {

            UIApplication *application = [UIApplication sharedApplication];
            [application presentLocalNotificationNow:localNotification];
            NSLog(@"Time Remaining: %f", [[UIApplication sharedApplication] backgroundTimeRemaining]);

        count = count + 3;
        return;
    }

    // TIMEOUT : STOP TIMER AND LOCAL NOTIFICATION BACKGROUND TASK
    [self invalidateCallNotifying];
}

-(void)invalidateCallNotifying
{
    [apnTimer invalidate];
    if (self.backgroundTask != UIBackgroundTaskInvalid)
    {
        [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
        self.backgroundTask = UIBackgroundTaskInvalid;
    }
}

увеличить время фонового процесса до 1 минуты, и оно работает в iOS 10.1.1 (iPhone), но не работает в iOS 9.3.5 (iPad). Каким-то образом обработчик вызывает 30-33 секунд?

ОБНОВИТЬ:

я попытался прокомментировать этот код:

self.backgroundTask = [application beginBackgroundTaskWithExpirationHandler:^{
                        NSLog(@"ALVOIP : BACKGROUND_HANDLER_NO_MORE_TASK_RUNNING.");
                        [application endBackgroundTask:self.backgroundTask]; 
                        self.backgroundTask = UIBackgroundTaskInvalid;
                    }];

Тем не менее я могу сделать 30-33 секунд, т. Е. Я не знаю, почему это не работает?

Ответы на вопрос(3)

Ваш ответ на вопрос