Application.Suspending Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit lorsque l’application passe à l’état Suspendu à partir d’un autre état.
public:
virtual event SuspendingEventHandler ^ Suspending;
// Register
event_token Suspending(SuspendingEventHandler const& handler) const;
// Revoke with event_token
void Suspending(event_token const* cookie) const;
// Revoke with event_revoker
Application::Suspending_revoker Suspending(auto_revoke_t, SuspendingEventHandler const& handler) const;
public event SuspendingEventHandler Suspending;
function onSuspending(eventArgs) { /* Your code */ }
application.addEventListener("suspending", onSuspending);
application.removeEventListener("suspending", onSuspending);
- or -
application.onsuspending = onSuspending;
Public Custom Event Suspending As SuspendingEventHandler
Type d'événement
Exemples
Cet exemple de code illustre un modèle d’utilisation classique pour cet événement. Ce code est utilisé par de nombreux exemples XAML dans le cadre du code-behind pour le fichier app.xaml. Si vous parcourez les exemples XAML, vous trouverez le code source de l’API SuspensionManager
de classe, comme indiqué dans ce code.
async protected void OnSuspending(object sender, SuspendingEventArgs args)
{
SuspendingDeferral deferral = args.SuspendingOperation.GetDeferral();
await SuspensionManager.SaveAsync();
deferral.Complete();
}
Private Async Sub OnSuspending(sender As Object, args As SuspendingEventArgs)
Dim deferral As SuspendingDeferral = args.SuspendingOperation.GetDeferral
Await SuspensionManager.SaveAsync
deferral.Complete()
End Sub
Remarques
Le système suspend votre application chaque fois que l’utilisateur bascule vers une autre application ou vers le bureau, et reprend votre application chaque fois que l’utilisateur y revient. Toutefois, le système peut également arrêter votre application pendant sa suspension afin de libérer des ressources. Par conséquent, vous devez gérer l’événement Suspending pour effectuer les opérations suivantes :
- Conserver l’état de la session utilisateur.
- Libérez tous les verrous exclusifs sur les ressources.
- Réduisez l’utilisation de la mémoire si possible. Par exemple, sérialisez toutes les données faciles à reconstruire sous forme d’objet lors de la réactivation.
- Enregistrez l’état de l’application. L’événement Suspending est la seule indication que votre application recevra avant l’arrêt (le cas échéant). Pour cette raison, vous devez stocker suffisamment d’état de session (par exemple, l’article actuel en cours de lecture ou la position de lecture du film) pour recréer exactement la même expérience pendant l’activation. Les conseils pour les applications de création de contenu sont d’enregistrer le travail d’un utilisateur tôt et souvent, mais également de valider un dernier enregistrement pendant la suspension. L’enregistrement des données avant la suspension est utile, car le gestionnaire d’événements Suspending n’a que 5 secondes pour terminer son opération.
Si votre application est terminée, vous pouvez restaurer l’état de l’application dans un remplacement de méthode OnLaunched . Si votre application reprend avant son arrêt, le système restaure automatiquement l’état de l’application. Vous devez gérer l’événement Reprise uniquement si vous avez besoin d’actualiser tout contenu affiché susceptible d’avoir changé pendant la suspension de l’application, par exemple les flux d’actualités ou l’emplacement de l’utilisateur.
L’événement Suspending s’exécute dans le même appartement dans lequel il a été inscrit.