API de reinicio
La API de reinicio permite que cualquier aplicación, incluidas las aplicaciones Win32 empaquetadas o desempaquetadas, finalice y reinicie en el comando, incluida la capacidad de proporcionar una cadena de línea de comandos arbitraria para la instancia reiniciada.
Definición
public static AppRestartFailureReason Restart(String arguments)
Parámetros
arguments
: String
Argumentos que se van a pasar a la instancia reiniciada.
Devoluciones
La API de reinicio devuelve un AppRestartFailureReason
.
Requisitos previos
Para usar la API de ciclo de vida de la aplicación en el SDK de aplicaciones para Windows:
- Descargue e instale la versión experimental más reciente del SDK de Aplicaciones para Windows. Para obtener más información, consulte Introducción a WinUI.
- Siga las instrucciones para crear su primer proyecto de WinUI 3 o para usar el SDK de aplicaciones para Windows en un proyecto existente.
¿Qué es este método de reinicio?
En el caso de las aplicaciones Win32, existen los siguientes mecanismos de reinicio posibles:
- RegisterApplicationRestart de la API de Win32 permite que una aplicación se registre después de la finalización y proporcione una cadena de línea de comandos arbitraria para la instancia reiniciada. Las razones para la finalización incluyen bloqueo o bloqueo de la aplicación, actualización de la aplicación o actualización del sistema.
Sin embargo, existía una brecha para el escenario siguiente:
- Las aplicaciones Win32 pueden registrarse con el sistema operativo para reiniciarse en estados específicos de la aplicación o del sistema operativo, pero no pueden iniciar un reinicio desde un estado correcto.
Esta API de reinicio permite que las aplicaciones Win32 finalicen y reinicien en el comando y se alinean con coreApplication.RequestRestartAsync existente de CoreApplication.RequestRestartAsync.
Reinicio con argumentos de línea de comandos
Simplemente llame al método Restart y especifique una cadena de línea de comandos arbitraria para que la instancia reiniciada se reinicie con. El reinicio se completa de forma sincrónica y no se requiere ninguna otra acción o control. Si se produce un error en el reinicio por algún motivo, el método Restart devuelve un motivo de error.
Ejemplos
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;
}
}
Para ver los ejemplos de reinicio, visite el repositorio WindowsAppSDK-Samples.