Создание нового экземпляра таймера, когда приложение выходит на передний план?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Создание нового экземпляра таймера, когда приложение выходит на передний план?

Сообщение Anonymous »

Я создаю приложение, в котором таймер устанавливается пользователем. Когда приложение переходит в фоновый режим, вызывается timer.invalidate(). Теперь я хочу, чтобы таймер запустился снова, когда приложение вернется на передний план. Я создаю еще один экземпляр таймера, чтобы сделать это, когда приложение отправляет уведомление о том, что приложение находится на переднем плане. Однако функция не активируется.

В Viewdidload() я создаю таймер:

Код: Выделить всё

 timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(handleCountdown), userInfo: nil, repeats: true)
RunLoop.current.add(self.timer!, forMode: RunLoop.Mode.common)
И затем у меня есть уведомления, которые проверяют, находится ли приложение в фоновом режиме или на переднем плане:

Когда оно входит фон Я аннулирую таймер.

Код: Выделить всё

  @objc func applicationDidEnterBackground() {
let defaults = UserDefaults.standard
let quitTime = Date()
defaults.set(quitTime, forKey: "quitTimeKey") //Storing the time of quit in UserDefaults
timer?.invalidate()

}
Когда приложение снова запускается, я сначала проверяю, является ли таймер действительным или нет, а затем создаю новый таймер. Но этот таймер, похоже, не работает.

Код: Выделить всё

@objc func appEntersForeground() {
calculateTimeLeft()
if let timer = timer {
if (!timer.isValid)
{
Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(handleCountdown), userInfo: nil, repeats: true)
}
}


Некоторая помощь будет оценена по достоинству!

Подробнее здесь: https://stackoverflow.com/questions/517 ... foreground
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»