Как реализовать завершение задачи - PullRequest
0 голосов
/ 16 декабря 2010

Завершение задачи - приложения могут запрашивать у системы дополнительное время для выполнения данной задачи.

Я использую этот метод для завершения задачи,

- (void)applicationDidEnterBackground:(UIApplication *)application 
{
    UIApplication  *app = [UIApplication sharedApplication];
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^
    { 
         NSLog(@"This is Testing");

        [app endBackgroundTask:bgTask]; 

        bgTask=UIBackgroundTaskInvalid;
    }];
}

Но я не получаю никакихвывод из этого метода.Кто-нибудь, скажите мне, что я делаю не так. Можете ли вы сказать, какой лучший способ реализовать для выполнения задачи.

С уважением,

Arunkumar.P

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Вы устанавливаете обработчик истечения срока действия, но вы, кажется, на самом деле ничего не делаете в фоновом режиме. Похоже, что ваш код скопирован из Выполнение кода в разделе Background руководства по программированию приложения для iOS. Следующий фрагмент кода в этом примере:

// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    // Do the work associated with the task.

    [app endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
});

Обработчик истечения не будет вызываться до тех пор, пока не будет достигнут срок (10 минут, когда я последний раз проверял); вы выполняете работу в задаче, которую отправляете асинхронно, а не в обработчике срока действия.

0 голосов
/ 28 апреля 2011

Это решило мою проблему: Простые фоновые задачи в IOS 4 .

Основная идея - отправить асинхронный код выполнения, который ничего не делает, но позволяет вашему текущему коду продолжать работу.

Надеюсь, это решит и тебя!

...