Delen via


API opnieuw opstarten

Met de api voor opnieuw opstarten kan elke app, inclusief verpakte of uitgepakte Win32-apps, zichzelf beëindigen en opnieuw opstarten bij de opdracht, inclusief de mogelijkheid om een willekeurige opdrachtregelreeks te bieden voor het opnieuw gestarte exemplaar.

Definitie

public static AppRestartFailureReason Restart(String arguments)

Parameterwaarden

arguments: Tekenreeks

De argumenten die moeten worden doorgegeven aan het opnieuw gestarte exemplaar.

Retouren

De Api voor opnieuw opstarten retourneert een AppRestartFailureReason.

Vereiste voorwaarden

De levenscyclus-API voor apps gebruiken in de Windows App SDK:

  1. Download en installeer de nieuwste versie van de Windows App SDK. Zie Aan de slag met WinUI voor meer informatie.
  2. Volg de instructies voor Uw eerste WinUI 3-project maken of om de Windows App SDK te gebruiken in een bestaand project.

Wat is deze methode voor opnieuw opstarten?

Voor Win32-apps bestaat het volgende als mogelijke mechanismen voor opnieuw opstarten:

  • Met de Win32-API RegisterApplicationRestart kan een app zichzelf opnieuw registreren na beëindiging en een willekeurige opdrachtregelreeks opgeven voor het opnieuw gestarte exemplaar. De redenen voor beëindiging zijn het vastlopen of crashen van apps, het bijwerken van apps of systeemupdates.

Er bestaat echter een hiaat voor het volgende scenario:

  • Win32-apps kunnen zich registreren bij het besturingssysteem om opnieuw op te starten in specifieke app- of besturingssysteemtoestanden, maar kan niet opnieuw opstarten vanuit een gezonde toestand

Met deze herstart-API kunnen Win32-toepassingen op opdracht beëindigen en opnieuw opstarten, en deze uitlijnen met de bestaande CoreApplication.RequestRestartAsync.

Opnieuw opstarten met opdrachtregelargumenten

Roep de methode Opnieuw opstarten aan en geef een willekeurige opdrachtregelreeks op waarmee het opnieuw gestarte exemplaar opnieuw moet worden opgestart. Het opnieuw opstarten is synchroon voltooid en er is geen verdere actie of verwerking vereist. Als het opnieuw opstarten om welke reden dan ook mislukt, retourneert de methode restart een reden van de mislukking.

Voorbeelden

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

Als u voorbeelden van opnieuw opstarten wilt zien, gaat u naar de WindowsAppSDK-Samples opslagplaats.