8
votes

Nstimer s'arrête en arrière-plan après un certain temps

J'ai utilisé NSTIMER pour appeler une méthode après 1 seconde lorsque l'application passe en arrière-plan et après près de 17 minutes de minuterie cesse de fonctionner.

Quand il est revenu à la précédente, il a de nouveau commencé à travailler, alors dites-moi pourquoi cela se passe et comment résoudre le problème.

J'ai également essayé d'utiliser un sélecteur d'exécution avec un délai de récursivité dans le même but, mais en donnant à nouveau le même résultat. S'il vous plaît suggérer une solution. Toute aide sera complètement appréciée.


4 commentaires

Que fait la minuterie? Je veux dire, est l'une des tâches de fond autorisées par Apple?


Quels "modes de fond requis" avez-vous défini dans vos propriétés cible de construction?


J'ai ajouté "Appregistrement de l'application pour les mises à jour de localisation" dans mes modes de fond requis


S'il vous plaît suggérer comment atteindre cette tâche. L'aide sera appréciée


3 Réponses :


5
votes

de Mise en œuvre des tâches d'arrière-plan à long terme :

Pour les tâches nécessitant plus de temps d'exécution pour mettre en œuvre, vous devez demander des autorisations spécifiques pour les exécuter en arrière-plan sans être suspendu. Dans iOS, seuls des types d'applications spécifiques sont autorisés à exécuter en arrière-plan:

  • Applications qui jouent un contenu audible à l'utilisateur lors de l'arrière-plan, tel qu'une application de lecteur de musique
  • Applications qui conservent les utilisateurs informés de leur emplacement à tout moment, telles qu'une application de navigation
  • Applications prenant en charge la voix sur Internet Protocol (VoIP)
  • Applications de journal qui doivent télécharger et traiter le nouveau contenu
  • Applications qui reçoivent des mises à jour régulières des accessoires externes

0 commentaires

6
votes

Wierd Issue - J'ai aussi eu celui-ci, mais ce qui suit a fonctionné pour moi. XXX


3 commentaires

J'ai utilisé cela mais toujours la minuterie s'arrête après près de 16 minutes en arrière-plan


S'il vous plaît voir cela et laissez-moi savoir si cela fonctionne. Stackoverflow.com/Questtions/8449351/...


Runloop ne fonctionne pas dans le périphérique. Avoir une idée de pourquoi ça ne fonctionne pas?



0
votes

Si peu de minutes ne suffisent pas, vous Impossible de faire une application exécuter une application infinie dans Backgorund sauf si il utilise:

  • Lecture audio
  • Services d'emplacement
  • Accessoire externe

    Vous pouvez utiliser Tâches d'arrière-plan pour obtenir 10 minutes de temps d'exécution pour toutes les autres applications, ou notifications locales pour informer l'utilisateur.


1 commentaires

J'utilise les services de localisation pour le mode arrière-plan mais toujours des arrêts de minuterie