Xamarin.Forms 앱 수명 주기Xamarin.Forms App Lifecycle

Application 기본 클래스에서 제공하는 기능은 다음과 같습니다.The Application base class provides the following features:

수명 주기 메서드Lifecycle methods

Application 클래스에는 수명 주기 변경에 응답하기 위해 재정의할 수 있는 다음 세 가지 가상 메서드가 포함되어 있습니다.The Application class contains three virtual methods that can be overridden to respond to lifecycle changes:

  • OnStart - 애플리케이션이 시작되면 호출됩니다.OnStart - called when the application starts.
  • OnSleep - 애플리케이션이 백그라운드로 전환될 때마다 호출됩니다.OnSleep - called each time the application goes to the background.
  • OnResume - 애플리케이션이 백그라운드로 전환된 후 다시 시작될 때 호출됩니다.OnResume - called when the application is resumed, after being sent to the background.

참고

애플리케이션 종료 메서드가 없습니다.There is no method for application termination. 정상적인 상황(즉, 충돌이 아닌 경우)에서는 코드에 추가 알림이 없이 OnSleep 상태에서 애플리케이션이 종료할 수 있습니다.Under normal circumstances (i.e. not a crash) application termination will happen from the OnSleep state, without any additional notifications to your code.

이러한 메서드가 호출되는 경우를 살펴보려면 각각에 WriteLine 호출을 구현하고(아래 참조) 각 플랫폼에서 테스트합니다.To observe when these methods are called, implement a WriteLine call in each (as shown below) and test on each platform.

protected override void OnStart()
{
    Debug.WriteLine ("OnStart");
}
protected override void OnSleep()
{
    Debug.WriteLine ("OnSleep");
}
protected override void OnResume()
{
    Debug.WriteLine ("OnResume");
}

중요

Android에서는 기본 작업의 [Activity()] 특성에 ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation이 없는 경우 애플리케이션이 처음 시작될 때 OnStart 메서드가 호출됩니다.On Android, the OnStart method will be called on rotation as well as when the application first starts, if the main activity lacks ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation in the [Activity()] attribute.

페이지 알림 이벤트Page notification events

Application 클래스에는 나타나는 페이지와 사라지는 페이지에 대한 알림을 제공하는 두 개의 이벤트가 있습니다.There are two events on the Application class that provide notification of pages appearing and disappearing:

  • PageAppearing - 페이지가 화면에 나타나려고 할 때 발생합니다.PageAppearing - raised when a page is about to appear on the screen.
  • PageDisappearing - 페이지가 화면에서 사라지려고 할 때 발생합니다.PageDisappearing - raised when a page is about to disappear from the screen.

이러한 이벤트는 화면에 나타나는 페이지를 추적하려는 시나리오에서 사용할 수 있습니다.These events can be used in scenarios where you want to track pages as they appear on screen.

참고

PageAppearingPageDisappearing 이벤트는 각각 Page.AppearingPage.Disappearing 이벤트가 발생한 직후에 Page 기본 클래스에서 발생합니다.The PageAppearing and PageDisappearing events are raised from the Page base class immediately after the Page.Appearing and Page.Disappearing events, respectively.

Application 클래스에는 각각 자체의 고유한 이벤트 인수가 있는 4개의 이벤트가 있으며, 이를 통해 표시 및 해제되는 모달 페이지에 응답할 수 있습니다.There are four events on the Application class, each with their own event arguments, that let you respond to modal pages being shown and dismissed:

  • ModalPushing -페이지가 모달 형식으로 푸시될 때 발생합니다.ModalPushing - raised when a page is modally pushed.
  • ModalPushed -페이지가 모달 형식으로 푸시된 후에 발생합니다.ModalPushed - raised after a page has been pushed modally.
  • ModalPopping -페이지가 모달 형식으로 팝될 때 발생합니다.ModalPopping - raised when a page is modally popped.
  • ModalPopped -페이지가 모달 형식으로 팝된 후에 발생합니다.ModalPopped - raised after a page has been popped modally.

참고

ModalPoppingEventArgs 형식의 ModalPopping 이벤트 인수는 Cancel 속성을 포함합니다.The ModalPopping event arguments, of type ModalPoppingEventArgs, contain a Cancel property. Canceltrue로 설정되면 모달 팝이 취소됩니다.When Cancel is set to true the modal pop is cancelled.