BGAppRefreshTask в фоновых задачах - PullRequest
2 голосов
/ 28 января 2020

У меня есть этот код, который показывает сообщение «Msg Background», когда приложение находится в фоновом режиме. Мне нужно, чтобы приложение продолжало работать в фоновом режиме и показывало это сообщение каждые 2 минуты (просто пример времени). Пока код, который я показываю, показывает сообщение только один раз, очевидно, это предложение не работает должным образом.

UIApplication.shared.setMinimumBackgroundFetchInterval (UIApplication.backgroundFetchIntervalMinimum)

У меня также есть это предупреждение: setMinimumBackgroundFetchInterval устарел в iOS 13.0: использовать BGAppRefreshTask в Фреймворк BackgroundTasks вместо

Я использую Swift 5 и Xcode 11

class AppDelegate: UIResponder, UIApplicationDelegate {



func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    GMSServices.provideAPIKey("AIzaSyBSpAt5zqvbh73FmG_Kb6xpiFMkWRmHppg")
    UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
    return true
}

func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    print("Msg Background")
}

}

1 Ответ

1 голос
/ 28 февраля 2020

Как сказал Paulw11, он не вызывается через фиксированный интервал. ОС контролирует, когда она будет выполнена. Мы не можем ожидать указанное время из-за этого.

Вы, вероятно, знаете это, но я собираюсь добавить этот бит на всякий случай, setMinimumBackgroundFetchInterval устарел для iOS 13 и позже. Возможно, вы захотите использовать BackgroundTasks Framework .

, но если вы хотите протестировать executeFetchWithCompletionHandler, вы можете использовать панель навигации XCode> Отладка> выполнить фоновую выборку.

снимок экрана навигационной панели XCode для поиска опции

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...