Я проверил множество документов, но не смог найти решения для Возобновление задач с использованием NSURLSession, когда приложение удаляется из фона или при перезагрузке устройства.
Я имею дело с amazon S3 для загрузки некоторых файлов, в которых я могу
- Загрузить файл в S3 с помощью NSURLSessionUploadTask, когда приложение находится как на переднем плане, так и в фоновом.
- Возобновить задачу, когда приложение сбой по какой-либо другой причине во время загрузки и если приложение не удаляется из фона.
- Перезапустить задачу, если я перезагружаю устройство во время загрузки и если приложение не удаляется из фона.
Вот мой код для достижения функциональности резюме, написанный в методе applicationDidBecomeActive приложения appdelegate.
// Initialize session config and the background session
NSURLSession *l_taskSession = [self backgroundSession];
[l_taskSession getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks)
{
if([uploadTasks count])
{
for (int i=0; i<[uploadTasks count]; i++)
{
NSURLSessionUploadTask *uploadRequestTask = (NSURLSessionUploadTask*)[uploadTasks objectAtIndex:i];
[uploadRequestTask resume];
NSLog(@"-------- Upload Resumed ------- ");
}
}
else if(![uploadTasks count])
{
NSLog(@"------- There are no previous tasks -------");
}
}];
Теперь проблема заключается в том, что в обоих случаях (2 и 3), упомянутых выше, он не дает списка задач, которые выполнялись, когда я удалял приложение из фона и снова запускал, в соответствии с кодом он попадает в другое условие и журналы
2015-06-12 17:12:32.902 AppName[162:60b] ------- Предыдущих задач нет -------
Итак, мой вопрос: можно ли возобновить выполнение задач, когда приложение удалено из фона? Или может кто-нибудь просто дать мне справочные ссылки, где я могу найти ответ на то же самое, любая помощь приветствуется.