Быстрый таймер в фоновом режиме - PullRequest
0 голосов
/ 26 апреля 2018

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

Мне нужна помощь, чтобы этот таймер работал правильно через 10 минут.Это мой код

@objc func timeoutChecking(_ timer: Timer) {
    print("time \(self.currentTime)")
    if self.currentTime != TIME_SEARCH {
        self.currentTime += 1
    }
    else {
        // Time out
        self.stopChecking()
    }
}

1 Ответ

0 голосов
/ 26 апреля 2018

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

Вы можете сделать одну вещь, взять одну глобальную переменную, добавить установленное текущее время в applicationDidEnterBackground и applicationWillEnterForeground проверка в этом методе берет текущее системное время и сохраненное предыдущее время, сравнивает оба раза и получает разницу между ними, и проверяет,

if self.currentTime != TIME_SEARCH {
        self.currentTime += 1
    }
    else {
        // Time out
        self.stopChecking()
}

Вы должны проверить здесь как if self.currentTime > TIME_SEARCH или if self.currentTime < TIME_SEARCH такВы можете получить идеальный результат.:)

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