Bien qu'il ne soit pas possible de le faire lorsque l'application n'est pas en cours d'exécution, vous pouvez le faire assez facilement au lancement ou en cours d'exécution (si elle doit tourner à 3 heures du matin). Voici ce que je ferais:
- un magasin
NSDate
en utilisant NSUserDefaults
pour la dernière fois que vous mis à jour.
- Au lancement, si une période de 3 heures s'est écoulée depuis cette date, lancez une synchronisation.
- Également au lancement, commencez un
NSTimer
avec un long intervalle-5 minutes environ. À chaque tir, vérifiez si une période de 3 heures est passée et si c'est le cas, lancez une synchronisation. Vous pouvez même lancer le code de la dernière balle dans cette méthode de tir de NSTimer
et l'exécuter une fois au lancement. Assurez-vous simplement de mettre à jour l'objet NSDate
à chaque fois.
- Dans le délégué de l'application, dans les méthodes appelées à partir du retour de l'arrière-plan, vérifiez l'heure et la synchronisation si nécessaire - ou démarrez simplement le
NSTimer
et lancez-le immédiatement en premier.
Cela devrait couvrir tous les scénarios où vous devez mettre à jour l'application.
Pourquoi ne pas demander à l'application de rechercher les mises à jour au démarrage? L'application fonctionnera-t-elle 24/7? –
App ne sera pas nessicairly (sp?) Être sur l'écran, mais serait en cours d'exécution dans l'arrière-plan. Il peut y avoir quelques grandes vidéos à télécharger. – smcdrc