다음을 통해 공유


CoreApplication.RequestRestartAsync(String) 메서드

정의

앱을 다시 시작합니다.

public:
 static IAsyncOperation<AppRestartFailureReason> ^ RequestRestartAsync(Platform::String ^ launchArguments);
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<AppRestartFailureReason> RequestRestartAsync(winrt::hstring const& launchArguments);
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<AppRestartFailureReason> RequestRestartAsync(string launchArguments);
function requestRestartAsync(launchArguments)
Public Shared Function RequestRestartAsync (launchArguments As String) As IAsyncOperation(Of AppRestartFailureReason)

매개 변수

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 DoMajorAppReconfiguration()
{
    // Attempt restart, with arguments.
    AppRestartFailureReason result =
        await CoreApplication.RequestRestartAsync("-fastInit -level 1 -foo");

    // Restart request denied, send a toast to tell the user to restart manually.
    if (result == AppRestartFailureReason.NotInForeground
        || result == AppRestartFailureReason.Other)
    {
        SendToast("Please manually restart.");
    }
}

설명

  • 앱은 이 API를 호출할 때 표시되고 포그라운드되어야 합니다.
  • 다시 시작에 실패하지만 사용자가 앱을 수동으로 시작하면 앱이 정상적으로 시작되고 다시 시작 인수가 전달되지 않습니다.
  • 앱이 정상적인 방식으로 시작되지 않았지만 공유 계약, 파일 선택기, 앱 서비스 등에 의해 시작된 경우 사용자가 결과 동작을 기대하지 않으므로 앱에서 이 API를 호출하지 않아야 합니다.
  • 앱이 이 API를 호출한 후에는 확장 실행 세션을 요청하면 안 됩니다. 이로 인해 사용자 환경이 저하되기 때문입니다.
  • 앱이 이 API를 호출할 때 실행 중인 In-Process 백그라운드 작업이 있는 경우 해당 작업은 정상적인 방식으로 취소됩니다. Out-of-process 백그라운드 작업은 영향을 받지 않습니다.
  • 앱을 다시 시작하면 LaunchActivatedEventArgs.PreviousExecutionState 값이 Terminated 이므로 앱이 다시 시작과 다시 시작을 구분할 수 있습니다.

적용 대상

추가 정보