Как продолжить фоновую задачу даже после того, как я убил приложение в ios swift4

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

var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskInvalid

override func viewDidLoad() {
    super.viewDidLoad()

    if isBgRunnerOn {
      NotificationCenter.default.addObserver(self, selector: #selector(reinstateBackgroundTask), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
    }
}

@objc func updateLabel() {
    seconds += 1
    timerLabel.text = "\(seconds)\(" Sec")"
    print(seconds)
    if UIApplication.shared.backgroundTimeRemaining < 5 {
        reinstateBackgroundTask()
    }
}

func runTimer() {
    if isBgRunnerOn {
        registerBackgroundTask()
    }
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateLabel), userInfo: nil, repeats: true)
    isTimerRunning = true
}

func registerBackgroundTask() {
    backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in
        // after minimum time duration of background session (3 min).
        self?.reinstateBackgroundTask()
    }
    assert(backgroundTask != UIBackgroundTaskInvalid)
}

func endBackgroundTask() {
    UIApplication.shared.endBackgroundTask(backgroundTask)
    backgroundTask = UIBackgroundTaskInvalid
}

@objc func reinstateBackgroundTask() {
    if timer != nil && (backgroundTask == UIBackgroundTaskInvalid) {
        registerBackgroundTask()
    }
}

Как мне выполнить задачу в приложении завершено?. Как я это сделаю?

0 ответов

Другие вопросы по тегам