Жизненный цикл приложения Xamarin.Forms

Базовый класс Application предоставляет следующие возможности:

Методы жизненного цикла

Класс Application содержит три виртуальных метода, которые можно переопределить для реагирования на изменения жизненного цикла:

  • OnStart — вызывается при запуске приложения;
  • OnSleep — вызывается каждый раз, когда приложение переводится в фоновый режим;
  • OnResume — вызывается каждый раз, когда приложение выводится из фонового режима и его работа возобновляется.

Примечание.

Метода, отвечающего за завершение работы приложения, не существует. В обычных условиях (то есть не в случае сбоя) завершение работы приложения происходит из состояния OnSleep без дополнительных уведомлений в коде.

Чтобы пронаблюдать за вызовом этих методов, реализуйте вызов WriteLine в каждом из них (как показано ниже) и протестируйте приложение на каждой платформе.

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

Внимание

В Android метод OnStart будет вызываться при каждом повороте экрана, а не только при первом запуске приложения, если для основного действия не указано ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation в атрибуте [Activity()].

В классе Application есть два события, которые уведомляют о появлении страниц на экране и их исчезновении с экрана:

  • PageAppearing — возникает, когда страница скоро появится на экране;
  • PageDisappearing — возникает, когда страница скоро пропадет с экрана.

Эти события можно использовать, когда нужно отслеживать появление страниц на экране.

Примечание.

События PageAppearing и PageDisappearing вызываются из базового класса Page сразу после событий Page.Appearing и Page.Disappearing соответственно.

В классе Application есть четыре события (каждый с собственными аргументами), которые позволяют реагировать на открытие и закрытие модальных страниц:

  • ModalPushing — возникает при отправке страницы в модальном режиме.
  • ModalPushed — возникает после отправки страницы в модальном режиме.
  • ModalPopping — возникает при извлечении страницы в модельном режиме.
  • ModalPopped — возникает после извлечения страницы в модельном режиме.

Примечание.

Аргументы событий ModalPopping с типом ModalPoppingEventArgs содержат свойство Cancel. когда свойству Cancel присваивается значение true, модальное всплывающее окно отменяется;