2010-08-16 2 views
1

Je souhaite détecter les états de l'application et l'envoyer au serveur. Dans la nouvelle OS4, avec multitâches il y a des méthodes disponibles pour aider à détecter les états:Détecter les états de l'application

  • application: didFinishLaunchingWithOptions:
  • applicationDidBecomeActive:
  • applicationWillResignActive:
  • applicationDidEnterBackground:
  • applicationWillEnterForeground:
  • applicationWillTerminate:

J'ai lu que maintenant, nous devons utiliser applicationDidEnterBackground au lieu de applicationWillTerminate. Mon problème est que j'ai besoin d'eux tous les deux. Lorsque l'utilisateur envoie l'application en arrière-plan, il a l'état de veille. Mais lorsque l'utilisateur ferme l'application (à partir de la barre multitâche), l'état est fermé. Donc, j'ai besoin de détecter à la fois, lorsque l'utilisateur envoie l'application à l'arrière-plan et lorsque l'utilisateur (ou le système) le fermer.

Y at-il une solution ou une solution de contournement pour cela?

Je m'abonne à UIApplicationWillTerminateNotification mais cela ne fonctionne pas.

Merci dans le conseil.

Répondre

1

L'application va quitter la notification n'est plus tiré sur iOS 4 (comme je suis amené à croire). Lorsque l'utilisateur clique sur le bouton principal, l'application est envoyée en arrière-plan et vous recevez la notification d'arrière-plan. Mais lorsqu'un utilisateur ferme l'application à partir de la barre multitâche, ou si le système la ferme, l'application reçoit un message SIGKIL et se ferme immédiatement, sans aucune notification ni méthode de délégation.

+0

Ok, merci. Vous ne pouvez donc pas suivre l'état de "veille" et l'état "fermé". –

+0

Vous pourriez profiter de la notification 'didEnterBackground:'. Le seul problème que je vois est que vous auriez besoin d'utiliser l'API de tâche d'arrière-plan pour envoyer les données à votre serveur - et si c'est la seule raison pour laquelle vous l'utilisez, Apple ne le permettra pas. C'est similaire à l'utilisation de services de localisation uniquement pour la publicité, ce n'est pas autorisé. Donc, à moins d'envoyer d'autres choses utiles pour l'utilisateur, Apple ne le permettra pas. – Jasarien

+0

Je n'ai pas besoin d'utiliser l'API de tâche d'arrière-plan. J'ai juste besoin de savoir quand les utilisateurs ont l'application active en arrière-plan ou fermée, et notifier le serveur quand les états changent. Par exemple, je veux montrer les commentaires des utilisateurs avec l'application active ou en arrière-plan, mais je ne veux pas montrer les commentaires des utilisateurs avec l'application fermée. Je ne crois pas encore que vous ne pouvez pas suivre les états actifs, inactifs et fermés d'une application ... –

Questions connexes