2010-11-21 2 views
0

Lorsque vous appuyez sur le bouton d'accueil de l'iPhone, l'interface utilisateur est masquée, mais tout processus en cours continue à fonctionner en arrière-plan. Je trouve que si le processus est encore en cours, lorsque j'active l'application à nouveau, l'écran de démarrage sera affiché pendant une longue période jusqu'à ce que le processus est terminé avant d'afficher la page principale de l'application. Y at-il un moyen de terminer les processus lorsque le bouton d'accueil est enfoncé?Comment terminer le processus lorsque le bouton d'accueil est enfoncé?

1) Par exemple, si j'ai une boucle for et avant que la boucle ne soit terminée, le bouton d'accueil est enfoncé, est-il possible de terminer la boucle?

2) Et si au lieu d'une boucle, c'est un délégué qui attend que la fonction sdk termine le processus. par ex. Après avoir appelé UIImageWriteToSavedPhotosAlbum pour enregistrer une image, didFinishSavingWithError sera appelée à la fin de l'enregistrement. Puis-je terminer le processus d'enregistrement lorsque le bouton d'accueil est enfoncé?

Merci.

+0

1) Le concept de boucles durables dans le filetage principal est mauvais. Ils arrêtent la responsabilité de l'application. Donc, mettez cette boucle dans le thread arrière, et à l'intérieur de la boucle, vérifiez la variable globale que vous avez définie dans le thread principal quand applicatioResignActive arrive – Prcela

Répondre

6

Vous pouvez essayer d'ajouter une nouvelle ligne dans la info.plist de votre application et sélectionnez « application ne fonctionne pas en arrière-plan » ou écrire « UIApplicationExitsOnSuspend »

2
  1. Do en aluminium dit .
  2. ne pas faire 1, mais ajouter la méthode suivante au délégué de l'application

    • (void) applicationDidEnterBackground: (UIApplication *) Application

et faire quelque chose dans la méthode comme exit (0)