Ios жизненный цикл приложения: iOS Application Lifecycle, жизненный цикл iOS приложения

Содержание

iOS Application Lifecycle, жизненный цикл iOS приложения

admin

Опубликовано




следующий →
← предыдущая

Приложение iOS работает в нескольких состояниях, которые называются состояниями жизненного цикла приложения. Каждый разработчик iOS должен знать о жизненном цикле приложения, что помогает понять его поведение. Каждое приложение iOS проходит через следующие состояния во время работы.

  1. Не работает: считается, что приложение находится в состоянии «Не работает», если оно еще не запущено или не завершено системой или пользователем.
  2. Неактивно: приложение находится в неактивном состоянии, когда оно находится на переднем плане, но получает события. Другими словами, мы можем сказать, что оно действует как состояние моста, в котором приложение ненадолго остается при переходе в другое состояние.
  3. Active: это нормальный режим для приложения, когда оно находится в состоянии переднего плана и получает все пользовательские события.
  4. Фон: приложение переходит в фоновое состояние, когда пользователь нажимает на главном экране во время использования приложения, или это требует дополнительного времени выполнения. Когда приложение вот-вот будет приостановлено, оно также переходит в это состояние на небольшой промежуток времени. В этом состоянии приложение остается в фоновом режиме и выполняет код.
  5. Приостановлено: в этом состоянии приложение остается в фоновом режиме и не выполняет код. Приложение автоматически переводится в это состояние. В этом состоянии приложение остается в памяти. Однако активные приложения всегда имеют приоритет над приостановленными приложениями и могут быть удалены в любое время без предварительного уведомления.

Мы должны заметить, что когда мы создаем и запускаем приложение iOS в XCode, основной точкой входа приложения является UIApplicationDelegate, который представляет собой протокол, который приложение должно реализовать, чтобы получать уведомления о нескольких пользовательских событиях, таких как запуск приложения, приложение переходит в фоновом режиме, приложение переходит на передний план, push-уведомления и т. д.

UIApplicationDelegate содержит определенные методы жизненного цикла приложения, которые получают уведомление при запуске приложения. Методы UIApplicationDelegate приведены ниже.

  1. application: didFinishLaunchingWithOptions:-> Bool: при первоначальном запуске приложения вызывается этот метод. В этом методе мы можем выполнить любую первоначальную настройку приложения, например настройку Firebase, пользовательскую навигацию и т. д. На этом этапе загружается раскадровка, но мы можем поддерживать восстановление состояния.
  2. applicationWillEnterForeground: этот метод вызывается после didFinishLaunchingWithOptions. Он также вызывается, когда приложение переходит из фона на передний план.
  3. applicationDidBecomeActive: этот метод вызывается после applicationWillEnterForeground. Если нам нужно выполнить какую-то конкретную задачу, когда приложение выходит на передний план, например, обновить шрифт и т. д., мы можем поместить код в этот метод.
  4. applicationWillResignActive: этот метод уведомляется, когда приложение собирается стать неактивным. Например, пользователь получает телефонный звонок; пользователь нажимает кнопку «Домой» и т. д.).
  5. приложениеDidEnterBackground: этот метод уведомляется, когда приложение переходит в фоновое состояние после того, как стало неактивным.
  6. applicationWillTerminate: этот метод вызывается, когда приложение должно быть окончательно завершено из памяти. Если нам нужно выполнить какие-либо финальные очистки, мы можем поместить код в этот метод.

Мы можем поместить код, который будет выполняться при запуске приложения, в методе didFinishLaunchingWithOptions . Например, в приложении, в котором для использования приложения требуется вход пользователя в систему, мы можем проверить, вошел ли пользователь в приложение, проверив UserDefaults. Если пользователь вошел в систему, мы можем перейти к главному экрану; в противном случае мы можем перейти к экрану входа в систему.

Ниже приведен класс AppDelegate, который создается в первую очередь при создании любого проекта iOS.

@UIApplicationMain
класс AppDelegate: UIResponder, UIApplicationDelegate {

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Точка переопределения для настройки после запуска приложения.
вернуть истину
}

func applicationWillResignActive(_ приложение: UIApplication) {
// Отправляется, когда приложение собирается перейти из активного в неактивное состояние. Это может происходить при определенных типах временных прерываний (таких как входящий телефонный звонок или SMS-сообщение) или когда пользователь выходит из приложения, и оно начинает переход в фоновое состояние.
// Используйте этот метод, чтобы приостановить текущие задачи, отключить таймеры и сделать недействительными обратные вызовы рендеринга графики. Игры должны использовать этот метод для приостановки игры.
}

func applicationDidEnterBackground(_ приложение: UIApplication) {
// Используйте этот метод для освобождения общих ресурсов, сохранения пользовательских данных, аннулирования таймеров и сохранения достаточного количества информации о состоянии приложения, чтобы восстановить ваше приложение до его текущего состояния в случае, если оно будет остановлено позже.
// Если ваше приложение поддерживает фоновое выполнение, этот метод вызывается вместо applicationWillTerminate: когда пользователь завершает работу.
}

func applicationWillEnterForeground (_ приложение: UIApplication) {
// Вызывается при переходе из фонового состояния в активное; здесь вы можете отменить многие изменения, сделанные при входе в фон.
Utile.getCurrentViewController()?.viewDidLayoutSubviews()
}

func applicationDidBecomeActive(_ приложение: UIApplication) {

// Перезапустить все задачи, которые были приостановлены (или еще не запущены), пока приложение неактивно. Если приложение ранее работало в фоновом режиме, при необходимости обновите пользовательский интерфейс.

}

func applicationWillTerminate(_ приложение: UIApplication) {
// Вызывается, когда приложение вот-вот завершится. Сохраните данные, если это необходимо. См. также приложениеDidEnterBackground:.
}


Следующая темаЧто такое джейлбрейк в iOS

← предыдущая
следующий →