iOS 7 Fetch en arrière-plan Lorsque l'Application n'est Pas en cours d'Exécution

J'ai écrit une application simple afin de tester et de surveiller la façon dont la fetch en arrière-plan fonctionnalité fonctionne dans iOS7.

Tout d'abord, j'ai mis en UIBackgroundMode options dans mes Infos.fichier plist.

iOS 7 Fetch en arrière-plan Lorsque l'Application n'est Pas en cours d'Exécution

Alors;

J'ai ajouté de code ci-dessous dans application:didFinishLaunchingWithOptions: méthode dans AppDelegate.m:

iOS 7 Fetch en arrière-plan Lorsque l'Application n'est Pas en cours d'Exécution

Enfin, j'ai mis en place le application:(UIApplication *)application
performFetchWithCompletionHandler:
méthode comme demandé.

iOS 7 Fetch en arrière-plan Lorsque l'Application n'est Pas en cours d'Exécution

Chaque fois que je clique Debug->Simuler Fetch en arrière-plan bouton, les changements de la demande du numéro de lot et fonctionne comme prévu.

Cependant, je n'ai jamais été capable de le faire fonctionner lorsque l'application n'est pas en cours d'exécution (même pas dans le mode d'arrière-plan, tout simplement pas en cours d'exécution).

Apple dit que lorsque l'application n'est pas en cours d'exécution et OS souhaite exécuter les méthodes suivantes, respectivement:

application:(UIApplication *)application didFinishLaunchingWithOptions:
applicationDidEnterBackground:(UIApplication *)application
application:(UIApplication *)application performFetchWithCompletionHandler:

Donc ma question est qu'est-il un moyen de tester fetch en arrière-plan lorsque l'application n'est pas en cours d'exécution?

Je suis en train de tester cela sur mon iPod 5e Gen avec iOS 7.1.

Je ne pense pas que vous ne pouvez jamais savoir quand le système d'exploitation de l'effectuer. Si cela fonctionne dans les conditions que vous avez testé puis tout doit travail lorsque vous la relâchez... Il n'y a aucun moyen de déclencher ce dans un environnement réel, sans l'aide de silencieux de notifications push.
Essayez de planifier une Notification Locale sur l'une des affaires et de voir si elle déclenche.
J'ai essayé d'afficher une notification locale à chaque fois qu'il est appelé, mais je ne pouvais pas trouver un moyen de déclencher le fetch en arrière-plan lorsque l'application n'est pas en cours d'exécution. Je voulais juste vous assurer que si c'est vraiment ce qu'il propose.
Combien de temps êtes-vous attendre? Par exemple, mon application se réveille tous les 1 à 2 heures pour récupérer, je vois mes messages de débogage dans les journaux lors de la laisser l'appareil pour la nuit.
Si l'application se bloque système de le relancer (sûr à 100%), mais si l'utilisateur tuer app je pense que c'récente plus courir (mais pas sûr:)

OriginalL'auteur ozgur | 2014-03-24