Моя цель - отправить данные/изображение на сервер, когда приложение находится в фоновом режиме. Из iOS7 мы можем сделать это с помощью фоновой выборки. Но фоновая выборка предлагает только 30-секундный лимит времени. Данные, которые я отправляю на сервер, могут занимать больше времени, так как у него больше изображений. В то время как googling я наткнулся на Фоновое обслуживание передачи, которое предлагает неограниченное время для загрузки/загрузки данных в фоновом режиме. Возможно ли инициировать службу фонового переноса в коде извлечения фона? Если да, то как справиться с этим.Инициирование услуги передачи фона в фоновом режиме iOS
1
A
ответ
0
Всякий раз, когда вы хотите, чтобы начать загрузку/выгрузку (в вашем случае во время вашего 30secs на фоне выборки) выполнить следующие строки:
NSString *downloadURLString = //Your link here;
NSURL* downloadURL = [NSURL URLWithString:downloadURLString];
NSURLRequest *request = [NSURLRequest requestWithURL:downloadURL];
// Create a background session
static NSURLSession *session = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSString *identifier = @"com.yourcompany.yourapp";
NSURLSessionConfiguration* sessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:identifier];
session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
});
//Init a NSURLSessionDownloadTask with the just-created request and resume it
NSURLSessionDownloadTask *task = [session downloadTaskWithRequest:request];
[task resume];
});
Кроме того, не забывайте применять эти методы делегата:
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location;
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didWriteData:(int64_t)bytesWritten
totalBytesWritten:(int64_t)totalBytesWritten
totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite;
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didResumeAtOffset:(int64_t)fileOffset
expectedTotalBytes:(int64_t)expectedTotalBytes;
для детального образца, посмотри на this образец приложении
Смежные вопросы
- 1. Услуги WCF в фоновом режиме
- 2. Выполнение услуги VOIP (PJSIP) в фоновом режиме
- 3. MonoTouch - Услуги определения местоположения в фоновом режиме
- 4. Местоположение Услуги в iOS 8: Режимы фона
- 5. Обнаружение маяков в фоновом режиме в iOS
- 6. IOS corebluetooth Уведомление об фоновом режиме
- 7. Вызов веб-службы в фоновом режиме - iOS
- 8. Таймер iOS в фоновом режиме
- 9. iOS CoreLocation в фоновом режиме
- 10. Приложение IOS в фоновом режиме?
- 11. iOS 8: Использование таймера в фоновом режиме
- 12. Местоположение Услуги, не работающие в фоновом режиме, вызываемые WatchKit
- 13. XCode/iOS Поддерживает соединение в фоновом режиме
- 14. ios handle pushnotification в фоновом режиме
- 15. Цвет фона в фоновом режиме по умолчанию
- 16. Настройка звука для фона в фоновом режиме
- 17. как IOS mosquitto в фоновом режиме
- 18. Запуск запроса в фоновом режиме IOS
- 19. iOS app open safari в фоновом режиме
- 20. Выполнение длительных задач в фоновом режиме IOS
- 21. Прервать приложение в режиме IOS и фона
- 22. iOS 7 завершает работу в фоновом режиме
- 23. Запуск приложения iOS в фоновом режиме навсегда
- 24. NSURLSessionDataTask в фоновом режиме
- 25. iBeacon в фоновом режиме
- 26. reacquisition микрофона в фоновом режиме в iOS
- 27. обновление местоположения в фоновом режиме в iOS
- 28. iBeacons сканирования в фоновом режиме в iOS?
- 29. Запуск задачи в фоновом режиме в iOS
- 30. Работа в фоновом режиме в iOS
Проверьте nsurlsession, она позволяет делегировать процесс загрузки на прошивку, который будет звонить вам при загрузке файла – user996142