SuspendingEventHandler Délégué
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.
Représente la méthode qui gérera l’événement Suspending .
public delegate void SuspendingEventHandler(Platform::Object ^ sender, SuspendingEventArgs ^ e);
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(591565925, 58218, 16610, 177, 57, 164, 112, 70, 2, 166, 225)]
class SuspendingEventHandler : MulticastDelegate
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(591565925, 58218, 16610, 177, 57, 164, 112, 70, 2, 166, 225)]
public delegate void SuspendingEventHandler(object sender, SuspendingEventArgs e);
Public Delegate Sub SuspendingEventHandler(sender As Object, e As SuspendingEventArgs)
Paramètres
- sender
-
Object
Platform::Object
IInspectable
Objet dans lequel le gestionnaire est attaché.
Donnée d’événement.
- Attributs
Configuration requise pour Windows
Famille d’appareils |
Windows 10 (introduit dans 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
|
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, par exemple l’exemple Input, 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.