Comment garder NSTimer vivant en arrière-plan sur iOS 7?
J'ai créé une Application qui s'exécute NSTimer en arrière-plan. J'ai utilisé l'Emplacement manager pour exécuter le NSTimer en arrière-plan,
J'ai utilisé le lien ci-dessous pour exécuter NSTimer en arrière-plan,
Cette approche fonctionne très bien sous iOS 6, mais fonctionne pas sur iOS 7. Mon Application se bloque après un certain temps lors de l'Application en arrière-plan sur iOS 7.
S'il vous plaît laissez-moi savoir si une approche différente pour exécuter le NSTimer en arrière-plan.
Merci d'avance.
- double possible de NSTimer en arrière-plan
- Changer votre conception - pourquoi avez-vous besoin d'une minuterie dans le fond?
- j'obtiens les données GPS au moment donné j'ai donc utilisé le NSTimer. comme je l'ai wan pas de scénario comme garder les données GPS à 3.30 PM et de l'Arrêt de la collecte des données GPS à 6 h 30. Système tue l'Application. en arrière-plan. donc, je viens de ping sur l'emplacement de manager toutes les 5 minutes pour garder la Minuterie vivant.
- Ajouter un peu de code pour montrer comment vous gérer votre minuterie et le fond d'expiration. Apple a changé la tâche en arrière-plan fois.
- Pourquoi ne pas vérifier le temps lorsque vous recevez un GPS de mise à jour et de décider si vous devez rester inscrit pour les mises à jour ou de la déconnexion?
Vous devez vous connecter pour publier un commentaire.
Dans iOS7, il y a une nouvelle mode pour les périodiques extraction de données. Ajouter le
fetch
mode d'arrière-plan à votre application et à votre demande délégué, passer d'un intervalle à- [UIApplication setMinimumBackgroundFetchInterval:
. Votre application délégué du commencer à recevoir des appels àapplication:performFetchWithCompletionHandler:
une fois que l'application est en arrière-plan.Plus d'informations ici:
https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:performFetchWithCompletionHandler:
-[UIApplication application:performFetchWithCompletionHandler:]
.