12 votes

Existe-t-il un moyen de quitter mon application de manière programmatique ? (Windows Phone 7)

J'écris une application pour Windows phone 7. J'ai un code de gestion des "exceptions fatales" où je suis sûr que l'application est complètement foutue et qu'il est inutile de continuer. (J'espère ne jamais en arriver là...). Comme mon application ne peut rien faire d'autre que quitter, je veux que l'utilisateur puisse fermer l'application.

Mais j'ai remarqué qu'il n'y a pas System.Environment.Exit() dans le SDK Silverlight 4 pour Windows Phone 7. Existe-t-il un autre moyen de quitter l'application de manière programmatique ?

9voto

Mick N Points 14619

App Cert Reqt :

5.1.2 Fin de l'application

Le site application doit gérer les exceptions levées par le .NET Framework et ne pas se terminer de manière inattendue. Pendant le processus de certification, l'application est surveillée pour détecter toute inattendue. Une application qui se termine de manière inattendue échoue certification. Lors du traitement des exceptions, une application doit fournir un message d'erreur convivial. Vous pouvez présenter un message qui est pertinent au contexte de l'application l'application. L'application doit continuer à fonctionner et rester réactive l'utilisateur après la gestion de l'exception. traitée. Une application qui affiche des messages d'erreur génériques ou inutiles échouera à la certification.

Je vous recommande de fournir toutes les informations que vous jugez pertinentes pour l'utilisateur, puis de laisser à l'utilisateur le soin de gérer la navigation de l'appareil à la lumière de ces informations.

Tout en reconnaissant les solutions connues pour fournir des boutons de "sortie", je ne vois pas actuellement de raison impérieuse de mettre en œuvre une "sortie" d'une application WP7.

La plateforme est tout à fait capable de gérer la fermeture des applications. Plus les applications ne proposent pas de sortie, plus les utilisateurs s'habitueront rapidement à ne pas penser à la gestion des applications et à laisser la plateforme s'en charger.

L'utilisateur n'aura qu'à naviguer sur son appareil en utilisant les touches Démarrer, Retour, etc.

Si l'utilisateur veut quitter l'application en cours pour faire autre chose rapidement - facilement - il lui suffit d'appuyer sur Start.

.Exit(), bien que disponible pour xna, n'est plus vraiment nécessaire non plus. Au cours de la CTP, il y avait une exigence de certification selon laquelle les jeux devaient fournir un bouton de sortie. Cette exigence a maintenant disparu.

Les applications autres que les jeux n'ont jamais eu besoin d'implémenter cela.

Plus ce sujet est discuté (et il a vraiment fait le tour de la question), plus les indicateurs me suggèrent qu'il n'est pas nécessaire de coder une sortie.

4voto

greensuisse Points 512

Pour Windows Phone 8, il suffit d'appeler App.Current.Terminate() ;

4voto

Naviguez vers App.xaml.cs dans votre explorateur de solutions et ajoutez une méthode statique à la App classe

public static void Exit()
{
      App.Current.Terminate();
}

afin que vous puissiez l'appeler n'importe où depuis votre application, comme ci-dessous

App.Exit();

3voto

ctacke Points 53946

Une façon "moins laide" (et apparemment la seule) de sortir est décrit ici . Beurk.

2voto

Jerry Nixon - MSFT Points 12256

Voici comment je fais :

void Exit()
{
    while (NavigationService.BackStack.Any())
        NavigationService.RemoveBackEntry();
    base.OnBackKeyPress(new CancelEventArgs());
}

Malheureusement, cela ne fonctionne pas :(

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