Жизненный цикл приложения Xamarin.Forms
Базовый класс Application
предоставляет следующие возможности:
- методы жизненного цикла
OnStart
,OnSleep
иOnResume
; - события навигации по страницам
PageAppearing
иPageDisappearing
; - события модальной навигации
ModalPushing
,ModalPushed
,ModalPopping
иModalPopped
.
Методы жизненного цикла
Класс 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
, модальное всплывающее окно отменяется;