다음을 통해 공유


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

다시 시작한 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 이므로 앱이 다시 시작과 다시 시작을 구분할 수 있습니다.

적용 대상

추가 정보