2010-10-29 4 views
1

Je souhaite enregistrer des données d'état de l'application lorsque l'utilisateur quitte l'application. Je pense que je devrais utiliser la méthode applicationWillTerminate à l'intérieur de mon appDelegate, mais quand je tente de faire quoi que ce soit là, il ne fait rien:L'utilisation de la méthode applicationWillTerminate ne semble pas fonctionner

- (void) applicationWillTerminate:(UIApplication *)application { 
NSLog(@"test"); 
} 

Quand je lance mon application, et faire des choses, et a frappé le bouton d'accueil pour quitter l'application, rien ne vient sur la console ...

Dois-je implémenter la méthode applicationWillTerminate dans appDelegate? L'utilisateur de mon application sera probablement dans une vue Reader quand ils partent, y at-il de toute façon à mettre en œuvre l'application va fermer la méthode là-bas?

Répondre

2

voir ce lien iPhone simulator and applicationWillTerminate() pour les anciennes versions iOS;

mais rappelez-vous le bouton Home ne se termine pas nécessairement l'application est iOS4 ... vous devriez utiliser applicationDidEnterBackground mais proposeriez les lieux applicationWillTerminate et applicationDidEnterBackground

Ajout de la touche UIApplicationExitsOnSuspend au fichier Info.plist de votre application et en définissant sa valeur YES va vous faire quitter l'application lorsque vous cliquez sur le bouton d'accueil, même sur iOS4

+0

C'est juste la clarification dont j'avais besoin, merci beaucoup – Jerry

2

Dans iOS 4, la méthode applicationWillTerminate: n'est appelée que si vous désactivez le modèle d'exécution en arrière-plan. Dans le cycle de vie de l'application iOS 4 standard, les applications sont suspendues (non terminées) lorsque le bouton d'accueil est enfoncé. Votre délégué d'application recevra un message applicationWillResignActive: suivi d'un message applicationDidEnterBackground:. La méthode applicationDidEnterBackground: est un bon endroit pour enregistrer les données utilisateur.

Questions connexes