API de reinicio

La API de reinicio permite que cualquier aplicación, incluidas las aplicaciones Win32 empaquetadas o desempaquetadas, finalice y reinicie por sí mismas 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: cadena

Argumentos que se van a pasar a la instancia reiniciada.

Devoluciones

La API de reinicio devuelve un AppRestartFailureReasonobjeto .

Requisitos previos

Para usar la API del ciclo de vida de la aplicación en el SDK de Aplicaciones para Windows:

  1. Descargue e instale la versión más reciente del SDK de Aplicaciones para Windows. Para más información, consulte Instalación de herramientas para el SDK de Aplicaciones para Windows.
  2. 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 restart?

En el caso de las aplicaciones Win32, existen los siguientes mecanismos de reinicio posibles:

  • La API De Win32 RegisterApplicationRestart permite que una aplicación se registre después de la finalización y proporcionar 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 siguiente escenario:

  • 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.

Reiniciar con argumentos de la 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.