Я использую удаленное уведомление с доступным содержимым: флаг истины для запуска приложения в фоновом режиме при молчаливом уведомлении push и обработки или извлечения обновлений из удаленного API. Код выполняется отлично, когда приложение находится на переднем плане или в состоянии приостановлено после предыдущего запуска.Фоновая задача по удаленному уведомлению приостановлена через короткое время
Во время тестов в фоновом режиме, когда приложение запускается системой на основе входящего молчащего push-уведомления, код обрабатывается только частично, и приложение быстро приостанавливается примерно через 150 мс. Я ожидал, что приложение получит 30 секунд для обработки входящего уведомления и его полезной нагрузки. Нужно ли настраивать возможности приложения или запрашивать фоновое задание, если мне нужно больше времени для обработки и/или получения новых данных?
Цель развертывания iOS 8, тестирование на iOS 9. Xcode 7.3.1, Swift 2.2.1.
Возможности: Режимы Фоновые ON, Режимы работы: Дистанционные уведомления Enabled
AppDelegate
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
if let userInfo = userInfo as? [String: AnyObject] {
// Processing of the payload is done in separate Operation class (using Operations framework)
// The completion handler is called on the end of the processing/fetching in that operation
// But in case of launching the app in the background it never reaches the call of the completion handler
let parseNotificationOperation = ParseNotificationOperation(userInfo: userInfo, fetchCompletionHandler: completionHandler)
MainService.shared.enqueueApnsOperation(parseNotificationOperation)
}
}
Отлично работает, спасибо! –
Всегда приветствую приятеля :) –