Condividi tramite


CoreApplication.RequestRestartForUserAsync(User, String) Metodo

Definizione

Riavviare l'app nel contesto di un utente diverso.

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)

Parametri

user
User

L'utente per riavviare l'app come.

launchArguments
String

Platform::String

winrt::hstring

Argomenti da passare all'istanza riavviata.

Restituisce

Stato della richiesta di riavvio.

Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 Fall Creators Update (è stato introdotto in 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v5.0)

Esempio

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

Commenti

  • L'app deve essere visibile e in primo piano quando chiama questa API.
  • Se il riavvio ha esito negativo, ma successivamente l'utente avvia l'app manualmente, l'app verrà avviata normalmente e non verranno passati argomenti di riavvio.
  • Se l'app non è stata avviata normalmente, ma è stata avviata da un contratto di condivisione, una selezione file, un servizio app e così via, l'app non deve chiamare questa API perché l'utente non prevede il comportamento risultante.
  • L'app è responsabile di garantire la validità dell'oggetto User . L'attivazione avrà esito negativo se sono presenti criteri che impediscono all'utente di eseguire l'app.
  • L'app non deve richiedere una sessione di esecuzione estesa dopo che ha chiamato questa API perché ciò comporterà un'esperienza utente scarsa.
  • Se l'app ha attività in background in-process in esecuzione quando chiama questa API, tali attività verranno annullate normalmente. Le attività in background out-of-process non saranno interessate.
  • Quando l'app viene riavviata, LaunchActivatedEventArgs.PreviousExecutionState avrà il valore Terminato in modo che l'app possa distinguere tra un curriculum e un riavvio.

Si applica a

Vedi anche