Partager via


API de redémarrage

L’API de redémarrage permet à n’importe quelle application, y compris les applications Win32 empaquetées ou non empaquetées, de se terminer et de redémarrer elles-mêmes sur commande, y compris la possibilité de fournir une chaîne de ligne de commande arbitraire pour l’instance redémarrée.

Définition

public static AppRestartFailureReason Restart(String arguments)

Paramètres

arguments: chaîne

Arguments à passer à l’instance redémarrée.

Retours

L’API Restart retourne un AppRestartFailureReason.

Prérequis

Pour utiliser l’API de cycle de vie des applications dans le Windows App SDK :

  1. Téléchargez et installez la dernière version du SDK d'application Windows. Pour plus d’informations, consultez Prise en main de WinUI.
  2. Suivez les instructions relatives à la création de votre premier projet WinUI 3 ou à l’utilisation du SDK d’application Windows dans un projet existant.

Qu’est-ce que cette méthode de redémarrage ?

Pour les applications Win32, les mécanismes de redémarrage possibles sont les suivants :

  • Le registerApplicationRestart de l’API Win32 permet à une application de s’inscrire après l’arrêt et de fournir une chaîne de ligne de commande arbitraire pour l’instance redémarrée. Les raisons de l’arrêt incluent le blocage ou le blocage de l’application, la mise à jour de l’application ou la mise à jour système.

Toutefois, un écart existait pour le scénario suivant :

  • Les applications Win32 peuvent s’inscrire auprès du système d’exploitation pour redémarrer dans des états d’application/système d’exploitation spécifiques, mais ne peuvent pas lancer un redémarrage à partir d’un état sain

Cette API de redémarrage permet aux applications Win32 d’arrêter et de redémarrer sur commande, et de s’aligner sur coreApplication.RequestRestartAsync existante de CoreApplication.

Redémarrage avec des arguments de ligne de commande

Appelez simplement la méthode Restart et spécifiez une chaîne de ligne de commande arbitraire pour que l’instance redémarrée redémarre. Le redémarrage est effectué de manière synchrone et aucune action ou gestion supplémentaire n’est nécessaire. Si le redémarrage échoue pour une raison quelconque, la méthode Restart retourne une raison d’échec.

Exemples

private void restartAfterUpdate()
{
    AppRestartFailureReason restartError = AppInstance.Restart(restartArgsInput);

    switch (restartError)
    {
        case AppRestartFailureReason.RestartPending:
            SendToast("Another restart is currently pending.");
            break;
        case AppRestartFailureReason.InvalidUser:
            SendToast("Current user is not signed in or not a valid user.");
            break;
        case AppRestartFailureReason.Other:
            SendToast("Failure restarting.");
            break;
    }
}

Pour afficher des exemples de redémarrage, visitez le référentiel WindowsAppSDK-Samples.