CoreApplication.RequestRestartForUserAsync(User, String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.