Я пытаюсь сделать приложение, которое может сделать запуск таймера в фоновом режиме.Swift 3 - Как заставить таймер работать в фоновом режиме
вот мой код:
let taskManager = Timer.scheduledTimer(timeInterval: 10, target: self, selector: #selector(self.scheduleNotification), userInfo: nil, repeats: true)
RunLoop.main.add(taskManager, forMode: RunLoopMode.commonModes)
выше код будет выполнять функцию, которая будет вызывать локальное оповещение. Это работает, когда приложение находится на переднем плане, как я могу заставить его работать в фоновом режиме?
Я попытался поместить несколько строк печати, и я увидел, что когда я сворачиваю (нажатие кнопки дома) приложение, таймер останавливается, когда я возвращаюсь в приложение, он возобновляется.
Я хотел, чтобы таймер все еще работал в фоновом режиме. есть ли способ сделать это?
вот что я хочу, чтобы это произошло:
приложение запуска -> подождите 10 секунд -> извещение получено -> подождите 10 секунд -> извещение получено -> и обратно ждать и снова получил
, что происходит когда на переднем плане. но не в фоновом режиме. PLS помощи.
Не можете ли вы запустить таймер в фоновом режиме, обернув его в backgroundTask? Хотя тогда это будет в конечном итоге убито его истечениемHandler (3 минуты)? – Honey
По моему опыту, «NSTimer» перестанет работать, когда приложение зайдет в фон, если приложение не запустило какой-либо фоновый режим. Но когда приложение вернется на передний план, таймер может продолжать работать, но временной интервал в фоновом режиме будет отсутствовать. –