52 votes

Forcer l'application iphone à redémarrer de manière programmatique ?

J'essaie de faire en sorte que mon application iPhone redémarre de manière programmatique lorsque le bouton de déconnexion est pressé.

Quelqu'un a-t-il un exemple de code à partager ? J'ai lu que c'était possible en modifiant le fichier main.m mais je n'ai pas trouvé de code à ce sujet.

Toute aide serait appréciée.

0 votes

12 votes

Vous ne pouvez pas vraiment le forcer à redémarrer. Vous pouvez le forcer à mourir, mais vous serez probablement rejeté pour cela. Vous devriez plutôt concevoir votre application de manière à pouvoir effacer par programme toutes les données et les réinitialiser vous-même.

0 votes

Tant que le crash est initié par l'utilisateur, il ne devrait pas être rejeté. Par exemple, une application bancaire peut avertir l'utilisateur que quelque chose n'est pas synchronisé, ou qu'un délai trop long s'est écoulé depuis la dernière activation, et qu'il devra se reconnecter, et lui proposer un bouton "quitter maintenant" (comme seul choix). Ce n'est pas un problème car l'utilisateur s'attend à ce que cela se produise. Je ne dis pas que c'est la meilleure ou la seule façon de réinitialiser/se déconnecter, mais c'est acceptable, en ce qui concerne Apple, la dernière fois que j'ai vérifié.

4voto

Jeff Points 875

Placez ceci dans une UIAlertAction demandant à l'utilisateur "Sauvegarder et quitter". Il animera le exit(0) pour qu'au moins cela ait l'air prévu.

- (void)saveAndQuit
{
    [UIView animateWithDuration:0.8 animations:^{
        self.window.alpha = 0.0; // fade out...
        // ... while pinching to a point
        self.window.transform = CGAffineTransformScale(
                CGAffineTransformMakeTranslation( 0, 0 ), 0.1, 0.1 );
    } completion:^(BOOL finished) {
        exit(0);
    }];
}

3voto

cat Points 726

Je sors pendant -Demande de renouvellement de l'autorisation : si l'application est sur l'écran de démarrage et qu'Apple l'accepte depuis des années. Pour l'utilisateur, cela ne ressemblera pas à un crash. La prochaine fois, l'utilisateur lancera l'application à partir de l'icône. Une vérification supplémentaire qui ne quitte pas l'application si elle a été lancée aujourd'hui pourrait être utile pour l'expérience de l'utilisateur dans certains cas.

- (void)applicationWillResignActive:(UIApplication *)application
{
    // called if phone-call comes in!
    if([gameController isGameFinished])
        exit(0);
}

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