Partilhar via


Reiniciar a API

A API de reinicialização permite que qualquer aplicativo, incluindo aplicativos Win32 empacotados ou não empacotados, seja encerrado e reiniciado no comando, incluindo a capacidade de fornecer uma cadeia de caracteres de linha de comando arbitrária para a instância reiniciada.

Definição

public static AppRestartFailureReason Restart(String arguments)

Parâmetros

arguments: Cadeia de caracteres

Os argumentos a serem passados para a instância reiniciada.

Devoluções

A API de reinicialização retorna um AppRestartFailureReasonarquivo .

Pré-requisitos

Para usar a API do ciclo de vida do aplicativo no SDK do Aplicativo Windows:

  1. Baixe e instale a versão experimental mais recente do SDK de Aplicativo Windows. Para obter mais informações, consulte Introdução ao WinUI.
  2. Siga as instruções para Criar seu primeiro projeto da WinUI 3 ou Usar o SDK do Aplicativo Windows em um projeto existente.

O que é esse método de reinicialização?

Para aplicativos Win32, existem os seguintes mecanismos de reinicialização possíveis:

  • A API Win32 RegisterApplicationRestart permite que um aplicativo se registre para ser reiniciado após o encerramento e forneça uma cadeia de caracteres de linha de comando arbitrária para a instância reiniciada. Os motivos para o encerramento incluem falha ou travamento do aplicativo, atualização do aplicativo ou atualização do sistema.

No entanto, existia uma lacuna para o seguinte cenário:

  • Os aplicativos Win32 podem se registrar no sistema operacional para reiniciar em estados específicos do aplicativo/sistema operacional, mas não podem iniciar uma reinicialização de um estado íntegro

Essa API de reinicialização permite que os aplicativos Win32 sejam encerrados e reiniciados no comando e se alinha ao CoreApplication.RequestRestartAsync existente do CoreApplication.

Reiniciando com argumentos de linha de comando

Basta chamar o método Restart e especificar uma cadeia de caracteres de linha de comando arbitrária para a instância reiniciada reiniciar. A reinicialização é concluída de forma síncrona e nenhuma ação ou tratamento adicional é necessário. Se a reinicialização falhar por algum motivo, o método Restart retornará um motivo de falha.

Exemplos

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 exemplos de reinicialização, visite o repositório WindowsAppSDK-Samples.