Демонстрация жизненного цикла приложения для Xamarin.iOS
В этой статье и примере кода показаны четыре состояния приложения в iOS, а также роль AppDelegate
методов в уведомлении о том, когда состояния изменяются. Приложение будет выводить обновления в консоль всякий раз, когда приложение изменяет состояние:
Пошаговое руководство
Откройте проект жизненного цикла в решении LifecycleDemo.
AppDelegate
Откройте класс. Ведение журнала добавлено в методы жизненного цикла, чтобы указать, когда приложение изменило состояние:public override void OnActivated(UIApplication application) { Console.WriteLine("OnActivated called, App is active."); } public override void WillEnterForeground(UIApplication application) { Console.WriteLine("App will enter foreground"); } public override void OnResignActivation(UIApplication application) { Console.WriteLine("OnResignActivation called, App moving to inactive state."); } public override void DidEnterBackground(UIApplication application) { Console.WriteLine("App entering background state."); } // not guaranteed that this will run public override void WillTerminate(UIApplication application) { Console.WriteLine("App is terminating."); }
Запустите приложение в симуляторе или на устройстве.
OnActivated
вызывается при запуске приложения. Теперь приложение находится в активном состоянии.Нажмите кнопку "Главная" на симуляторе или устройстве, чтобы перенести приложение в фон.
OnResignActivation
иDidEnterBackground
будет вызываться как приложение переходит изActive
состояния вInactive
состояние.Backgrounded
Так как в фоновом режиме код приложения не выполняется, приложение считается приостановленным в памяти.Вернитесь к приложению, чтобы вернуть его на передний план.
WillEnterForeground
иOnActivated
оба будут вызываться:Следующая строка кода в контроллере представления выполняется, когда приложение ввело передний план с фона и изменяет текст, отображаемый на экране:
UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => { label.Text = "Welcome back!"; });
Нажмите кнопку "Главная", чтобы поместить приложение в фон. Затем дважды коснитесь кнопки "Главная ", чтобы открыть переключатель приложения. В i Телефон X проводите пальцем вверх снизу экрана:
Найдите приложение в приложении Switcher и проводите пальцем вверх, чтобы удалить его (в iOS 11 долго нажимайте, пока красные значки не появятся в углу):
iOS завершит работу приложения. Обратите внимание, что не вызывается, WillTerminate
так как приложение уже приостановлено в фоновом режиме.