web-dev-qa-db-fra.com

Swift 3 - Comment faire fonctionner la minuterie en arrière-plan

j'essaie de faire une application qui peut faire fonctionner une minuterie en arrière-plan.

voici mon code:

let taskManager = Timer.scheduledTimer(timeInterval: 10, target: self, selector: #selector(self.scheduleNotification), userInfo: nil, repeats: true)
        RunLoop.main.add(taskManager, forMode: RunLoopMode.commonModes)

le code ci-dessus effectuera une fonction qui invoquera une notification locale . cela fonctionne lorsque l'application est au premier plan, comment puis-je le faire fonctionner en arrière-plan?

j'ai essayé de mettre plusieurs lignes d'impression et j'ai vu que, lorsque je réduis l'application (touche home), le chronomètre s'arrête, lorsque je retourne à l'application, elle reprend.

je voulais que la minuterie fonctionne toujours en arrière-plan. y a-t-il un moyen de le faire?

voici ce que je veux arriver:

lancer l'application -> attendre 10 secondes -> notification reçue -> attendre 10 secondes -> notification reçue -> et revenir pour attendre et recevoir à nouveau

cela arrive quand au premier plan. mais pas en arrière-plan. pls aide.

7
Cristina Reyes

vous pouvez accéder aux fonctionnalités et activer le mode d’arrière-plan et l’audio actif. AirPlay, et image et image.

Ça marche vraiment . vous n'avez pas besoin de définir DispatchQueue ... vous pouvez utiliser Timer.

Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { (t) in

   print("time")
}
7
Farhad Faramarzi

Une minuterie ne peut fonctionner en arrière-plan que si les deux conditions suivantes sont vraies:

  • Votre application pour une autre raison s'exécute en arrière-plan. (La plupart des applications ne le font pas; la plupart des applications sont suspendues lorsqu'elles passent en arrière-plan.) Et:

  • La minuterie fonctionnait déjà lorsque l'application est entrée dans l'arrière-plan.

6
matt

La minuterie ne fonctionnera pas en arrière-plan. Pour la tâche de fond, vous pouvez vérifier ce lien ci-dessous ...

https://www.raywenderlich.com/143128/background-modes-tutorial-getting-started

1
Morshed Alam