Partilhar via


CoreApplication.RequestRestartForUserAsync(User, String) Método

Definição

Reinicie o aplicativo no contexto de um usuário diferente.

public:
 static IAsyncOperation<AppRestartFailureReason> ^ RequestRestartForUserAsync(User ^ user, Platform::String ^ launchArguments);
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<AppRestartFailureReason> RequestRestartForUserAsync(User const& user, winrt::hstring const& launchArguments);
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<AppRestartFailureReason> RequestRestartForUserAsync(User user, string launchArguments);
function requestRestartForUserAsync(user, launchArguments)
Public Shared Function RequestRestartForUserAsync (user As User, launchArguments As String) As IAsyncOperation(Of AppRestartFailureReason)

Parâmetros

user
User

O usuário para reiniciar o aplicativo como.

launchArguments
String

Platform::String

winrt::hstring

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

Retornos

O status da solicitação de reinicialização.

Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 Fall Creators Update (introduzida na 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v5.0)

Exemplos

private async void RestartAsAnotherUser(string selectedUser)
{
    IReadOnlyList<User> users = await User.FindAllAsync();
    foreach (User user in users)
    {
        object accountProperty =
            await user.GetPropertyAsync(KnownUserProperties.AccountName);
        string accountName = (string)accountProperty;
        if (accountName == selectedUser)
        {
            // Attempt restart, with arguments.
            AppRestartFailureReason result = await App.RequestRestartForUserAsync(
                user, "-fastInit -mainMenu");

            // Restart request denied, tell the user to restart manually.
            if (result== AppRestartFailureReason.InvalidUser)
            {
                SendToast(string.Format("Could not restart as user {0} - please manually restart.", user));
            }
        }
    }
}

Comentários

  • O aplicativo deve estar visível e em primeiro plano ao chamar essa API.
  • Se a reinicialização falhar, mas o usuário iniciar o aplicativo manualmente, o aplicativo será iniciado normalmente e nenhum argumento de reinicialização será passado.
  • Se o aplicativo não foi iniciado da maneira normal, mas foi iniciado por um contrato de compartilhamento, seletor de arquivos, serviço de aplicativo e assim por diante, o aplicativo não deve chamar essa API porque o usuário não espera o comportamento resultante.
  • O aplicativo é responsável por garantir a validade do objeto User . A ativação falhará se houver uma política em vigor que impeça o usuário de executar o aplicativo.
  • O aplicativo não deve solicitar uma sessão de Execução Estendida depois de ter chamado essa API porque isso resultará em uma experiência de usuário ruim.
  • Se o aplicativo tiver tarefas em segundo plano em processo em execução ao chamar essa API, essas tarefas serão canceladas da maneira normal. Tarefas em segundo plano fora do processo não serão afetadas.
  • Quando o aplicativo for reiniciado, LaunchActivatedEventArgs.PreviousExecutionState terá o valor Terminated para que o aplicativo possa distinguir entre um currículo e uma reinicialização.

Aplica-se a

Confira também