7
votes

Exécution d'applications en arrière-plan?

est-il possible de conserver une connexion à la prise en vie en arrière-plan, de pouvoir appuyer sur de nouvelles données et d'alerter les utilisateurs à tout moment?


3 Réponses :


0
votes

Vous pouvez certainement alerter les utilisateurs avec des notifications locales et push. Et autant que je sache, vous pouvez garder une connexion ouverte uniquement pour une durée limitée.

look ici pour Plus de détails.


0 commentaires

1
votes

Vous pouvez conserver une connexion à socket Alive (ou faire ce que vous voulez d'autre que vous voulez) en arrière-plan pendant environ 15 minutes après la fermeture de votre application. Il existe également des modes de traitement des antécédents spécialisés (spécifiquement, audio, VoIP et emplacement) dont Apple prend en charge si votre application s'inscrit dans l'une de leurs catégories prises en charge. Voir ici .

Si vous souhaitez continuer à envoyer les notifications de l'utilisateur indéfiniment, vous souhaitez utiliser le Service de notification push push . Cela permet à votre application de continuer à recevoir des notifications lorsque cela ne fonctionne pas et conserve des ressources car il n'y a qu'une connexion au service APN à la fois.


0 commentaires

20
votes

La réponse à cette question est un oui définitif. Si vous êtes dans l'état , vous pouvez également conserver une connexion ouverte et traiter des messages d'un serveur.

Malheureusement, la complexité est que vous n'avez pas beaucoup de contrôle sur l'état de votre application:

  • premier plan - L'utilisateur a tapé votre icône et que l'application s'exécute avec l'interface utilisateur visible.
  • suspendu - L'utilisateur exécutait déjà votre application au premier plan, mais la suspendit en frappant le bouton de la maison ou en recevant un appel. Fondamentalement, votre application est «gelée séchée» et restera inactive jusqu'à ce qu'elle soit reprise par l'utilisateur (à partir de l'endroit où elle est arrêtée) ou est terminée par le système d'exploitation (voir ci-dessous).
  • fond - L'application était précédemment en cours d'exécution au premier plan, mais a été déplacée dans l'état l'état à la suite de quelque chose que l'utilisateur a fait. Normalement, votre application se déplacera à l'état Suspendu dans ce cas, mais il y a des choses que vous pouvez faire comme le développeur pour empêcher le "gel" instantané et aller dans l'arrière-plan (voir ci-dessous). Votre application sera également dans l'état l'état si elle est réveillée pour un événement de changement significatif .
  • Terminé - Votre application a été déchargée de la mémoire et la prochaine fois qu'il commence à partir de zéro. C'est ce qui se passe lorsque vous double-cliquez sur le bouton Accueil, puis appuyez sur le X à côté de l'icône de votre application. Il déplace l'application de l'état suspendu dans l'état terminé . Cela se produira également si l'OS décide qu'il a besoin d'une place pour des applications plus récentes et que votre application a été suspendue depuis longtemps.

    Évidemment, l'astuce ici est comment puis-je rester dans l'état l'état aussi longtemps que possible. Il y a quelques façons de faire ceci:

    • mendiez plus de temps - Vous pouvez obtenir jusqu'à 10 minutes de traitement d'arrière-plan supplémentaire lorsque votre application est fermée si vous Demandez-lui .
    • Utilisez UibackgroundMode - Vous pouvez vous déclarer un VoIP , audio ou emplacement en ajoutant l'UibackgroundMode d'Uibackground correspondant valeur à la plis. Il existe des exigences particulières pour ces types d'applications que vous pouvez consulter ici .

      Ces approches ne sont donc pas sans leurs propres problèmes (être approuvé sur le magasin étant l'un d'entre eux) et, en tant que tel, j'ai tendance à être d'accord avec les autres réponses qui utilisent notifications push est probablement votre meilleure approche pour notifier vos utilisateurs. Avec le Amélioration de la notification de l'IOS5 Cela va être le meilleur utilisateur expérience d'aller de l'avant.


0 commentaires