Freigeben über


Neustart-API

Die Neustart-API ermöglicht es jeder App, einschließlich verpackter oder entpackter Win32-Apps, sich selbst zu beenden und neu zu starten, einschließlich der Möglichkeit, eine beliebige Befehlszeilenzeichenfolge für die neu gestartete Instanz bereitzustellen.

Definition

public static AppRestartFailureReason Restart(String arguments)

Parameter

arguments: Zeichenfolge

Die Argumente, die an die neu gestartete Instanz übergeben werden sollen.

Gibt zurück

Die Neustart-API gibt eine AppRestartFailureReason.

Voraussetzungen

So verwenden Sie die App Lifecycle API im Windows App SDK:

  1. Laden Sie das neueste experimentelle Release des Windows App SDK herunter und installieren Sie es. Weitere Informationen finden Sie unter "Erste Schritte mit WinUI".
  2. Befolgen Sie die Anweisungen zum Erstellen Ihres ersten WinUI 3-Projekts oder zum Verwenden des Windows App SDK in einem vorhandenen Projekt.

Was ist diese Restart-Methode?

Für Win32-Apps gibt es folgende Neustartmechanismen wie möglich:

  • Die Win32-API RegisterApplicationRestart ermöglicht es einer App, sich nach dem Beenden neu zu registrieren und eine beliebige Befehlszeilenzeichenfolge für die neu gestartete Instanz bereitzustellen. Zu den Gründen für die Beendigung gehören App-Absturz oder -blockade, App-Update oder Systemupdate.

Für das folgende Szenario ist jedoch eine Lücke vorhanden:

  • Win32-Apps können sich beim Betriebssystem registrieren, um in bestimmten App-/Betriebssystemzuständen neu zu starten, aber keinen Neustart aus einem fehlerfreien Zustand initiieren

Diese Neustart-API ermöglicht Win32-Anwendungen das Beenden und Neustarten des Befehls und richtet sich an die vorhandene CoreApplication.RequestRestartAsync von CoreApplication.

Neustart mit Befehlszeilenargumenten

Rufen Sie einfach die Restart-Methode auf, und geben Sie eine beliebige Befehlszeilenzeichenfolge für die neu gestartete Instanz an, mit der sie neu gestartet werden soll. Der Neustart wird synchron abgeschlossen, und es ist keine weitere Aktion oder Behandlung erforderlich. Wenn der Neustart aus irgendeinem Grund fehlschlägt, gibt die Restart-Methode einen Fehlergrund zurück.

Beispiele

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;
    }
}

Besuchen Sie das Repository "WindowsAppSDK-Samples", um Neustartbeispiele anzuzeigen.