2016-11-01 6 views
0

Мне нужно выполнить задачу, когда приложение находится в фоновом состоянии. Например, когда приложение входит в фоновое состояние, каждые 5 минут (приложение находится в фоновом режиме за это время) выполняется задание. Я попытался с изменением местоположения, но я не могу использовать точное местоположение (для потребления батареи), тогда я использовал значительное изменение местоположения, но если пользователь не перемещается или не меняет местоположение ячейки ячейки, он не обновляется.Фоновая задача swift 3.0 iOS

Вы можете мне помочь?

+0

Это зависит от того, что вы хотите сделать в фоновом режиме. iOS разрешает выполнение определенных задач в фоновом режиме: [Реализация долгосрочных задач] (https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#// apple_ref/doc/uid/TP40007072-CH4-SW4) –

+1

Вам, вероятно, нужно переосмыслить свой подход. iOS не позволяет приостановить выполнение расписания приложений для определенных временных интервалов. Какова природа задачи? Возможно, вы можете запустить его каким-то другим способом, например, нажать на сервер – Paulw11

+0

. Прочтите это: https://blog.newrelic.com/2016/01/13/ios9-background-execution/ –

ответ

0

Yo может использовать функцию выбора фона iOS, где вы можете указать минимальный интервал выборки фона. Но фактический интервал между последовательным вызовом вашего кода будет определяться инфраструктурой iOS.

func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { 

    let data: String? = nil 

    do { 
     //fetch some data 
     if let data = getSomeNewData() { 
      /* use the completionHandler to talk to the system and tell us if the app fetched new data, or if no data was available. */ 
      completionHandler(.newData) 
     } else { 
      completionHandler(.noData) 
     } 
    } catch { 
     print(error) 
     completionHandler(.failed) 
    } 

} 

смотри также вопрос: swift-ios-refreshing-app-data-when-in-background

Другой вариант заключается в установке сервера, который будет посылать (бесшумный) толчок уведомление для вашего приложения через каждые 5 минут, что ваше приложение может реагировать на.

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