Langage: HTML | XAML

Comment suspendre une application (applications Windows Runtime en C#/VB/C++ et XAML)

Applies to Windows and Windows Phone

Apprenez à enregistrer d’importantes données d’application lorsque le système suspend votre application. L’exemple inscrit un gestionnaire pour l’événement Suspending et enregistre une chaîne dans un fichier.

Feuille de route : comment cette rubrique s’articule-t-elle par rapport aux autres ? Voir :

Instructions

Étape 1: Enregistrer le gestionnaire d’événements de suspension

Enregistrez-vous pour gérer l’événement Suspending, qui indique que votre application doit enregistrer ses données d’application avant que le système la suspende.


using System;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.UI.Xaml;

partial class MainPage
{
   public MainPage()
   {
      InitializeComponent();
      Application.Current.Suspending += new SuspendingEventHandler(App_Suspending);
   }
}

Étape 2: Enregistrer des données d’application avant sa suspension

Lorsque votre application traite l’événement Suspending, elle a la possibilité d’enregistrer ses données d’application importantes dans la fonction du gestionnaire. L’application doit utiliser l’API de stockage LocalSettings pour enregistrer les données d’application simples de manière synchrone.


partial class MainPage
{
    async void App_Suspending(
        Object sender, 
        Windows.ApplicationModel.SuspendingEventArgs e)
    {
        // TODO: This is the time to save app data in case the process is terminated
    }
}

Étape 3: Libérer les ressources exclusives et les descripteurs de fichiers

Lorsque votre application traite l’événement Suspending, elle a également la possibilité de libérer les ressources exclusives et les descripteurs de fichiers. Caméras, périphériques d’E/S, périphériques externes et ressources réseau sont autant d’exemples de ressources exclusives. En libérant explicitement les ressources exclusives et les descripteurs de fichiers, vous permettez aux autres applications d’y accéder pendant que votre application ne les utilise pas. Lorsque l’application est activée après un arrêt, elle doit ouvrir ses ressources exclusives et descripteurs de fichiers.

Remarques

Le système suspend votre application chaque fois que l’utilisateur passe à une autre application, au Bureau ou à l’écran d’accueil. Le système en reprend l’exécution lorsque l’utilisateur revient à votre application. Dès lors, le contenu de vos variables et structures de données restent identiques à ce qu’elles étaient avant que le système ne suspende l’application. Le système rétablit l’application exactement dans l’état où il l’a laissée, de sorte qu’elle semble s’être exécutée en arrière-plan.

Le système tente de conserver votre application et ses données en mémoire pendant sa suspension. Toutefois, si le système ne dispose pas des ressources pour conserver votre application en mémoire, il met fin à votre application. Lorsque l’utilisateur rebascule vers une application suspendue qui a été arrêtée, le système envoie un événement Activated et doit restaurer ses données d’application dans sa méthode OnLaunched.

Le système ne vous notifie pas de l’arrêt d’une application. Celle-ci doit donc enregistrer ses données d’application et libérer les ressources exclusives et descripteurs de fichiers au moment où elle est mise en suspens pour ensuite les restaurer lorsque l’application est activée après avoir été arrêtée.

Remarque   Si vous devez effectuer des tâches asynchrones lorsque votre application est en cours de suspension, vous devez différer l’exécution de la suspension tant que vos tâches ne sont pas terminées. Vous pouvez utiliser la méthode GetDeferral sur l’objet SuspendingOperation (disponible via les arguments de l’événement) pour retarder la suspension jusqu’à ce que vous appeliez la méthode Complete et qu’elle soit appliquée sur l’objet SuspendingDeferral retourné.

Remarque  Pour améliorer la réactivité du système dans Windows 8.1, les applications disposent d’un accès à faible priorité aux ressources en cas de suspension. Pour prendre en charge cette nouvelle priorité, le délai de l’opération de suspension est prolongé afin que l’application dispose d’un accès de 5 secondes en priorité normale sur Windows ou de 1 à 10 secondes sur Windows Phone. Vous ne pouvez pas étendre ni modifier ce délai.

Remarque concernant le débogage à l’aide de Microsoft Visual Studio:  Visual Studio empêche Windows de suspendre une application qui est jointe au débogueur afin que l’utilisateur puisse voir l’interface de débogage de Visual Studio pendant l’exécution de l’application. Lorsque vous déboguez une application, vous pouvez lui envoyer un événement de suspension à l’aide de Visual Studio. Assurez-vous que la barre d’outils Emplacement de débogage est visible et cliquez sur l’icône Suspendre.

Rubriques associées

Tâches
Comment activer une application
Comment relancer une application
Conceptuel
Cycle de vie des applications
Recommandations
Recommandations pour la suspension et la reprise d’une application
Référence
Windows.UI.Xaml.Application

 

 

Afficher:
© 2014 Microsoft