[SWIFT 3] Timer et background
Hello,
Je rencontre un petit soucis..
J'ai créer un timer globale pour mon application
var leTimer : Timer?
Lorsque j'arrive sur ma page principale, si mon timer est activé dans ma configuration, je le lance :
var laValeurTracking = false
let defaults = UserDefaults.standard
if let laValeurTrackingTMP = defaults.value(forKey: "Alerte_Tracking"){
laValeurTracking = laValeurTrackingTMP as! Bool
}
if(laValeurTracking){
print("ME GEOLOCALISER")
leTimer?.invalidate()
leTimer = Timer.scheduledTimer(withTimeInterval: 3, repeats: true){ _ in
print("Envoyer ma position au serveur !")
}
}
else{
print("Timer STOP")
leTimer?.invalidate()
}
Le soucis vient quand l'application passe en background, j'aimerai que mon timer continue..
Dans mon projet, j'ai activé dans "Capabilities >> Background Modes >> Background fetch et Location updates" mais ça ne change rien..
Comment faire pour garder mon timer actif lorsque l'application passe en background ?
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si tu veux un update de location toutes les N secondes, essaye cette librairie:
https://github.com/paleksandrs/APScheduledLocationManager
J'viens de faire un test et ça à l'air de fonctionner comme il faut..
Merci ^^
La librairie est relativement petite, en fait il y a un seul fichier utile.
C'est un exercice qui a plusieurs avantages :
-s'entrainer à lire le code des autres,
-comprendre pourquoi le timer fonctionne dans son cas et pas le tien.
Souvent, ce genre de librairie, je ne les intègre pas, je les ouvre, je repère le coeur, je le prend et je l'intègre dans mon propre code. Parfois, cela donne un code moins élégant mais aussi moins compliqué et plus personnel.
Je reviens dessus car j'ai un petit bug..
Ok j'ai rien dit, tout fonctionne ^^