CoreApplication.RequestRestartForUserAsync(User, String) 方法

定义

在其他用户的上下文中重启应用。

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)

参数

user
User

重启应用的用户。

launchArguments
String

Platform::String

winrt::hstring

要传递给重启实例的参数。

返回

重启请求的状态。

属性

Windows 要求

设备系列
Windows 10 Fall Creators Update (在 10.0.16299.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v5.0 中引入)

示例

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

注解

  • 应用在调用此 API 时必须可见且前景好。
  • 如果重启失败,但用户随后手动启动应用,则应用将正常启动,并且不会传递任何重启参数。
  • 如果应用不是以正常方式启动的,而是由共享协定、文件选取器、应用服务等启动的,则应用不应调用此 API,因为用户不会期望结果行为。
  • 应用负责确保 User 对象的有效性。 如果存在阻止该用户执行应用的策略,则激活将失败。
  • 应用在调用此 API 后不应请求扩展执行会话,因为这会导致用户体验不佳。
  • 如果应用在调用此 API 时运行了任何进程内后台任务,则这些任务将以正常方式取消。 进程外后台任务将不受影响。
  • 重启应用时, LaunchActivatedEventArgs.PreviousExecutionState 的值将 终止 ,以便应用可以区分恢复和重启。

适用于

另请参阅