Suspendre l'application

Comment puis-je suspendre mon application ou envoyer un message de suspension à mon application?

Je veux simuler en appuyant sur le button d'accueil.

Il existe une méthode d'instance privée pour UIApplication:

Le code suivant fonctionnerait, (testé dans un iPhone 3GS):

UIApplication *app = [UIApplication sharedApplication]; [app performSelector:@selector(suspend)]; 

Le fait de quitter votre application ou de l'envoyer en arrière-plan par programmation constitue une violation des consignes d'interface user iOS , ce qui n'est généralement pas de bon augure pour passer à travers le process de révision:

Ne quittez pas le programme

Ne quittez jamais une application iOS par programmation car les gens ont tendance à interpréter cela comme un plantage. Cependant, si des circonstances externes empêchent votre application de fonctionner comme prévu, vous devez informer vos users de la situation et leur expliquer ce qu'ils peuvent y faire. En fonction de la gravité du dysfonctionnement de l'application, vous avez deux choix.

Afficher un écran attrayant qui décrit le problème et suggère une correction. Un écran fournit des commentaires qui rassurent les users qu'il n'y a rien de mal avec votre application. Il permet aux users de prendre le contrôle, les laissant décider s'ils veulent prendre des mesures correctives et continuer à utiliser votre application ou appuyer sur le button Accueil et ouvrir une application différente

Si seulement certaines des fonctionnalités de votre application ne fonctionnent pas, affichez un écran ou une alerte lorsque les users activent la fonctionnalité. Afficher l'alerte uniquement lorsque les users tentent d'accéder à la fonctionnalité qui ne fonctionne pas.

La raison philosophique de ceci est expliquée plus haut dans ce document:

Les gens, pas les applications, devraient initier et contrôler les actions. Bien qu'une application puisse suggérer une ligne de conduite ou avertir de conséquences dangereuses, l'application est généralement une erreur qui empêche l'user de prendre des décisions. Les meilleures applications trouvent le bon équilibre entre donner aux gens les capacités dont ils ont besoin tout en les aidant à éviter les résultats dangereux.

Les users se sentent plus en contrôle d'une application lorsque les comportements et les controls sont familiers et prévisibles. Et, lorsque les actions sont simples et directes, les users peuvent facilement les comprendre et s'en souvenir.

Les gens s'attendent à avoir amplement l'occasion d'annuler une opération avant qu'elle ne commence, et ils s'attendent à avoir l'occasion de confirmer leur intention d'effectuer une action potentiellement destrucsortingce. Enfin, les gens s'attendent à pouvoir arrêter gracieusement une opération en cours.

Il ne devrait pas y avoir de raison de forcer votre application en arrière-plan pendant son fonctionnement. Il devrait restr entièrement fonctionnel lorsqu'il est affiché à l'écran et il devrait appartenir à l'user lorsqu'il souhaite quitter votre application.

En swift:

 UIControl().sendAction(#selector(NSURLSessionTask.suspend), to: UIApplication.sharedApplication(), forEvent: nil) 

Modifier Swift3:

 UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil) 

Tu ne peux pas faire ça.

Si vous voulez quitter votre application, ne craignez pas le rejet et adorez les courriels faussement positifs du rapport d'accident des users que vous pourriez appeler exit(0);

Utilisation :

  sleep(15) 

il va suspendre votre application pour un time spécifique

Lorsque l'application est suspendue, une notification UIApplicationWillResignActiveNotification est publiée.

Je suppose que vous pourriez essayer de postr cette notification manuellement. Je n'ai pas essayé moi-même cependant.