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
다시 시작한 instance 전달할 인수입니다.
반환
다시 시작 요청의 상태.
- 특성
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를 호출할 때 실행 중인 In-Process 백그라운드 작업이 있는 경우 해당 작업은 정상적인 방식으로 취소됩니다. Out-of-process 백그라운드 작업은 영향을 받지 않습니다.
- 앱을 다시 시작하면 LaunchActivatedEventArgs.PreviousExecutionState 값이 Terminated 이므로 앱이 다시 시작과 다시 시작을 구분할 수 있습니다.