다시 시작 API

다시 시작 API를 사용하면 패키지 또는 패키지되지 않은 Win32 앱을 포함한 모든 앱이 다시 시작 인스턴스에 대해 임의의 명령줄 문자열을 제공하는 기능을 포함하여 명령에서 자신을 종료하고 다시 시작할 수 있습니다.

정의

public static AppRestartFailureReason Restart(String arguments)

매개 변수

arguments: {String}

다시 시작한 인스턴스에 전달할 인수입니다.

반품

Restart API는 .를 반환합니다 AppRestartFailureReason.

필수 조건

Windows App SDK에서 앱 수명 주기 API를 사용하려면 다음을 수행합니다.

  1. Windows App SDK의 최신 릴리스를 다운로드하여 설치합니다. 자세한 내용은 Windows 앱 SDK용 도구 설치를 참조하세요.
  2. 지침에 따라 첫 번째 WinUI 3 프로젝트를 만들거나 기존 프로젝트에서 Windows 앱 SDK를 사용합니다.

이 재시작 방법은 무엇입니까?

Win32 앱의 경우 가능한 다시 시작 메커니즘이 다음과 같습니다.

  • Win32 API RegisterApplicationRestart 를 사용하면 앱이 종료 후 다시 시작되도록 등록하고 다시 시작된 인스턴스에 대해 임의의 명령줄 문자열을 제공할 수 있습니다. 종료 원인에는 앱 크래시 또는 중단, 앱 업데이트 또는 시스템 업데이트가 포함됩니다.

그러나 다음 시나리오에서는 간격이 존재했습니다.

  • Win32 앱은 OS에 등록하여 특정 앱/OS 상태에서 다시 시작할 수 있지만 정상 상태에서 다시 시작을 시작할 수는 없습니다.

이 다시 시작 API를 사용하면 Win32 애플리케이션이 명령을 종료하고 다시 시작할 수 있으며 CoreApplication의 기존 CoreApplication.RequestRestartAsync에 맞춥니다.

명령줄 인수를 사용한 재시작

Restart 메서드를 호출하고 다시 시작할 인스턴스에 대해 임의의 명령줄 문자열을 지정하기만 하면 됩니다. 다시 시작은 동기적으로 완료되며 추가 작업이나 처리가 필요하지 않습니다. 어떤 이유로 인해 다시 시작이 실패하면 Restart 메서드는 실패 이유를 반환합니다.

예제

private void restartAfterUpdate()
{
    AppRestartFailureReason restartError = AppInstance.Restart(restartArgsInput);

    switch (restartError)
    {
        case AppRestartFailureReason.RestartPending:
            SendToast("Another restart is currently pending.");
            break;
        case AppRestartFailureReason.InvalidUser:
            SendToast("Current user is not signed in or not a valid user.");
            break;
        case AppRestartFailureReason.Other:
            SendToast("Failure restarting.");
            break;
    }
}

다시 시작 샘플을 보려면 WindowsAppSDK 샘플 리포지토리를 방문 하세요.