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.
public static AppRestartFailureReason Restart(String arguments)
arguments
: Zeichenfolge
Die Argumente, die an die neu gestartete Instanz übergeben werden sollen.
Die Neustart-API gibt eine AppRestartFailureReason
.
So verwenden Sie die App Lifecycle API im Windows App SDK:
- Laden Sie das neueste experimentelle Release des Windows App SDK herunter und installieren Sie es. Weitere Informationen finden Sie unter "Erste Schritte mit WinUI".
- Befolgen Sie die Anweisungen zum Erstellen Ihres ersten WinUI 3-Projekts oder zum Verwenden des Windows App SDK in einem vorhandenen Projekt.
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.
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.
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.
Feedback zu Windows developer
Windows developer ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: