288 votes

Bonne façon de sortie de l'application iPhone?

Je suis à la programmation d'une application iPhone, et j'ai besoin de le forcer à quitter en raison de certaines actions de l'utilisateur. Après le nettoyage de la mémoire de l'application alloué, quelle est la méthode appropriée pour appeler à mettre fin à l'application?

276voto

August Points 9726

Sur l'iPhone il n'y a pas de notion de fermeture d'une application. La seule action qui devrait provoquer une application pour arrêter de fumer est de toucher le bouton d'Accueil sur le téléphone, et ce n'est pas quelque chose que les développeurs ont accès.

Selon Apple, votre application ne doit pas mettre fin de sa propre. Puisque l'utilisateur n'a pas frappé le bouton de la Maison, tout retour à l'écran d'Accueil donne à l'utilisateur l'impression que votre application s'est écrasé. Ceci est source de confusion, non-standard de comportement et doit être évitée.

224voto

Brett Points 1445

Avez-vous essayé d' exit(0)?

Sinon, [[NSThread mainThread] exit], bien que je n'ai pas essayé, il semble que la solution plus appropriée.

50voto

Salim Points 3017

exit(0) apparaît à l'utilisateur comme les accidents, pour afficher un message de confirmation à l'utilisateur. Après confirmation de la suspension(bouton de la maison de la presse par programmation) et attendre 2 secondes tandis que l'application va de fond avec l'animation, puis la sortie de derrière vue de l'utilisateur

-(IBAction)doExit
{
    //show confirmation message to user
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Confirmation"
                                                 message:@"Do you want to exit?"
                                                delegate:self
                                       cancelButtonTitle:@"Cancel"
                                       otherButtonTitles:@"OK", nil];
    [alert show];
}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex != 0)  // 0 == the cancel button
    {
        //home button press programmatically
        UIApplication *app = [UIApplication sharedApplication];
        [app performSelector:@selector(suspend)];

        //wait 2 seconds while app is going background
        [NSThread sleepForTimeInterval:2.0];

        //exit app when app is in background
        exit(0);
    }
}

38voto

Kalyan Points 241

Accédez à vos informations.plist et vérifiez que la touche "Application ne s'exécute pas en arrière-plan". Cette fois, lorsque l'utilisateur clique sur le bouton home, l'application se ferme complètement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X