2013-03-07 2 views
1

Я хочу загрузить изображения, когда нажата кнопка дома, и приложение идет в фоновом режиме. Возможно ли это? Если да, то как? и если нет, то у меня есть другая альтернатива? Спасибо заранее ...Можно ли вызвать webRequest, когда приложение идет в фоновом режиме?

+0

http://developer.apple.com/library/ios/#technotes /tn2277/_index.html – Desdenova

ответ

3

Вы можете выполнить задачу в фоновом режиме, используя этот код для конкретного Time-

UIBackgroundTaskIdentifier bgTask = 0; 
    UIApplication *app = [UIApplication sharedApplication]; 
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
     [app endBackgroundTask:bgTask]; 
    }]; 
    self.silenceTimer = [NSTimer scheduledTimerWithTimeInterval:10 target:self 
                 selector:@selector(startLocationServices) userInfo:nil repeats:YES]; 

Смотрите так: http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

Я думаю, что это поможет и. :)

+0

Спасибо .... Я пришел к выводу, прочитав документ Apple, что процесс загрузки может быть выполнен максимум 10 минут после того, как приложение перейдет на задний план, –

+0

Ваш приветственный @KhushbuPatel .. Счастливое кодирование :) – shivam

1

Приложение может запросить запуск в фоновом режиме в течение 10 минут после его закрытия, чтобы он мог завершить долговременную задачу. В фоновом режиме разрешено запускать только некоторые процессы. См Исполнительные долгоиграющие Фоновые задачи раздел in this reference.

Если ваше приложение разрешено таким образом, вы можете попробовать ниже кода:

- (void)applicationDidEnterBackground:(UIApplication *)application 

{ 

    UIBackgroundTaskIdentifier bgTask; 
    bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ 

     // Clean up any unfinished task business by marking where you 

     // stopped or ending the task outright. 

     [application endBackgroundTask:bgTask]; 

     bgTask = UIBackgroundTaskInvalid; 

    }]; 



    // 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, preferably in chunks. 



     [application endBackgroundTask:bgTask]; 

     bgTask = UIBackgroundTaskInvalid; 

    }); 

} 

, если вы хотите знать, сколько времени приложения осталось до

NSTimeInterval ti = [[UIApplication sharedApplication]backgroundTimeRemaining]; 
NSLog(@"Remaining Time: %f", ti); // just for debug 

Для более исх пойти с этим reference PDF(page 60)

Смежные вопросы