La fonction qui est appelé quand application iPhone est terminée?
Je suis en train de travailler sur un projet dans Xcode version 4.2.1 et en iOS 5.0. Je me demandais la fonction qui sera appelée lorsque vous complètement fin à une application, ce qui signifie que même le temps lors de l'un des utilisateurs de la force de l'application en cours d'exécution sur fond d'être résilié à partir de l'écran d'accueil. J'ai été en supposant que
(void)applicationWillTerminate:(UIApplication *)application
serait appelé, mais il s'est avéré qu'il n'a pas été appelé, même après la fin de l'application en arrière-plan.
Ce qui en gros, je veux faire est d'appeler une méthode que j'ai créé juste avant que l'application est complètement terminée, donc besoin de savoir quelle fonction est appelée à la fin de l'application.
Merci.
- Pourriez vous s'il vous plaît sélectionner/coche l'une des réponses.
- Cette méthode sera appelée lorsque vous fermez l'application directement sans entrer dans le fond de l'état.
Vous devez vous connecter pour publier un commentaire.
"applicationWillTerminate" méthode sera appelée que lorsque l'application est pas en état de suspension tout en étant résilié.
Pour comprendre cela, compte tenu de votre application est au premier plan de l'état actif, aller à travers deux cas suivants:
Cas 1: Lorsque vous seul robinet bouton d'Accueil de l'application va directement à l'état interrompu par des appels de méthodes - (1) applicationWillResignActive et puis (2) applicationDidEnterBackground.
Maintenant, quand vous essayez d'arrêter de mettre fin, de l'app, en double-cliquant sur bouton accueil, puis balayez vers le haut de l'application en cours d'écran à partir des récentes application écrans, l'app est en état de suspension. Donc, "applicationWillTerminate" méthode ne sera pas appelé.
Cas 2: Lorsque vous double tap bouton d'Accueil de l'application va à l'état inactif par l'appel de la méthode (1) applicationWillResignActive.
Maintenant, lorsque vous essayez d'arrêter, de mettre fin, application, balayez vers le haut de l'application en cours d'écran à partir des récentes application écrans, l'app est en état inactif (pas en état de suspension), tout en étant résilié. Donc, "applicationWillTerminate" méthode sera appelée.
Regarder ce qu'Apple a dire:
Pour plus d'informations sur ce look - Apple Documentation Officielle sur applicationWillTerminate(_:)
Voici un bon aperçu de l'application du cycle de vie des notifications & déléguer des messages sur iOS 4.0 et plus récent. En bref...
Votre application va généralement de ne jamais voir willTerminate, parce que le système ne prend fin qu'à votre application une fois qu'il est déjà suspendu (dans le fond). Une fois que votre application est suspendue, il ne reçoit pas plus de chance de loi(*), donc il n'y a pas de rappel pour que.
La didEnterBackground délégué message ou une notification doit être considéré comme votre dernière chance de faire le ménage ou d'économie avant de résiliation possible.
(*) Bon, votre application peut faire des trucs si c'est dans un pris en charge les modes d'exécution en arrière-plan, comme l'audio, la VoIP ou la navigation, mais dans ce cas il n'a pas été suspendu ou a été des nations unies en suspension avec un point d'entrée spécifique à ce mode d'arrière-plan.
Si l'application est déjà suspendu, il ne recevrez plus de notifications. Regarder pour la
didEnterBackground
notification.C'est dans le UIApplicationDelegate protocole.
La la documentation ici définit le comportement de cette affaire.
En bref, vous ne recevrez que les
applicationWillTerminate:
message si l'application est en cours d'exécution (soit au premier plan ou en arrière-plan) quand il est terminé. Donc, à moins que votre application est en cours d'exécution dans le plan ou dans l'un des modes de fond (par exemple, VoIP, Audio, ou un travail de longue haleine indiqué parbeginBackgroundTaskWithExpirationHandler
), il va transition à partir de labackground
état de lasuspended
état assez rapidement. Dans ce cas, vous ne recevez jamais leapplicationWillTerminate:
message.