CoreApplication.RequestRestartForUserAsync(User, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在其他用户的上下文中重启应用。
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 的值将 终止 ,以便应用可以区分恢复和重启。