Использование scheduleTimer для обновления приложения в фоновом режиме с помощью swift - PullRequest
0 голосов
/ 10 июля 2019

Я запускаю таймер в своем приложении, но таймер не запускается через 3 минуты, пока приложение находится в фоновом режиме.Я хочу, чтобы этот таймер работал все время.С помощью этого таймера я вызываю функцию, когда часы, которые я напечатал на этикетке, и данные часов, которые я извлек из Firebase, совпадают.Поэтому я продолжаю получать данные из базы Firebase.Я должен запустить это в фоновом режиме.Итак, я запускаю запланированную функцию.Например, когда это 22:00, я запускаю эту функцию, но, как я уже сказал, она не работает в фоновом режиме.Как я могу работать более 3 минут в фоновом режиме?

2. вопрос есть;Есть ли функция запланированного назначения в Firebase?Есть ли в Firebase crontab?Могу ли я адаптировать это к своему быстрому приложению?

timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] timer in
            self?.tickTimer()
        }

Этот код не работает в фоновом режиме более 3 минут.

Есть ли у меня шансзапустить приложение на определенные периоды в коде ниже?в какие периоды iOS дает вам возможность работать?Я хочу запускать функцию tickTimer () в определенные периоды.Период в секундах "UIApplication.shared.setMinimumBackgroundFetchInterval (1800)" определяет эта функция?

var newData = false

    private func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
        newData = true

        let viewController = self.window?.rootViewController as! MainTableViewController
        viewController.tickTimer()

        completionHandler(newData ? .newData : .failed) // OR completionHandler(newData ? .newData : .noData)
    }
 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        //UIApplication.shared.isIdleTimerDisabled = true
        UIApplication.shared.setMinimumBackgroundFetchInterval(1800)
true
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...