Compartir a través de


CoreApplication.RequestRestartForUserAsync(User, String) Método

Definición

Reinicie la aplicación en el contexto de un usuario 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

El usuario para reiniciar la aplicación como.

launchArguments
String

Platform::String

winrt::hstring

Argumentos que se van a pasar a la instancia reiniciada.

Devoluciones

Estado de la solicitud de reinicio.

Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 Fall Creators Update (se introdujo en la versión 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v5.0)

Ejemplos

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));
            }
        }
    }
}

Comentarios

  • La aplicación debe estar visible y en primer plano cuando llama a esta API.
  • Si se produce un error en el reinicio, pero el usuario inicia la aplicación manualmente, la aplicación se iniciará normalmente y no se pasarán argumentos de reinicio.
  • Si la aplicación no se inició de forma normal, pero se inició mediante un contrato de recurso compartido, un selector de archivos, app-service, etc., la aplicación no debe llamar a esta API porque el usuario no esperará el comportamiento resultante.
  • La aplicación es responsable de garantizar la validez del objeto User . Se producirá un error en la activación si existe una directiva que impide que el usuario ejecute la aplicación.
  • La aplicación no debe solicitar una sesión de ejecución extendida después de haber llamado a esta API, ya que esto provocará una experiencia de usuario deficiente.
  • Si la aplicación tiene tareas en segundo plano en proceso que se ejecutan cuando llama a esta API, esas tareas se cancelarán de la manera normal. Las tareas en segundo plano fuera de proceso no se verán afectadas.
  • Cuando se reinicia la aplicación, LaunchActivatedEventArgs.PreviousExecutionState tendrá el valor Terminated para que la aplicación pueda distinguir entre un currículum y un reinicio.

Se aplica a

Consulte también