iOS의 애플리케이션 수명 주기

4370 단어 swiftiosprogramming
응용 프로그램 수명 주기는 응용 프로그램 시작과 종료 사이에 발생하는 일련의 이벤트를 구성합니다.

앱 실행을 위한 장치 재부팅과 관련된 단계:


  • 장치가 재부팅되면 OS에 속한 앱을 제외하고 어떤 앱도 실행되지 않습니다.
  • 사용자가 화면에서 앱 아이콘을 터치하면 SpringBoard에서 앱을 실행합니다.

  • SpringBoard is the standard application that manages the iPhone’s home screen.


  • SpringBoot가 앱의 시작 화면에 애니메이션을 적용하는 동안 앱과 필요한 공유 라이브러리가 메모리에 로드됩니다. 결국 앱 실행이 시작되고 애플리케이션 대리자가 알림을 받습니다.

  • Appdelegate는 UIResponder에서 상속하고 UIApplicationDelegate 프로토콜을 구현하는 응용 프로그램 대리자 개체입니다.
  • 앱의 기본 진입점은 앱 시작 및 사용자 이벤트에 대한 알림을 받기 위해 앱에서 구현되는 프로토콜인 UIApplicationDelegate입니다
  • .

    앱 실행 단계:



    앱 수명주기에는 주로 다섯 단계가 있습니다.

  • Not Running state : 앱이 시스템에 의해 시작되거나 종료되지 않았습니다.

  • 비활성 상태 : 앱이 포그라운드 상태로 들어가지만 이벤트를 수신하지 않습니다.

  • 활성 상태: 앱이 포그라운드 상태로 들어가 이벤트를 처리할 수 있습니다.

  • 배경 상태 : 이 상태에서 실행 가능한 코드가 있으면 실행하고, 실행 가능한 코드가 없거나 실행이 완료되면 즉시 응용 프로그램을 일시 중단합니다.

  • Suspended state : 앱이 백그라운드(메모리 내)에 있지만 코드를 실행하고 있지 않으며 시스템의 메모리가 부족하면 앱을 종료합니다.

  • 코드로 앱 상태 매핑:




        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            // Override point for customization after application launch. 
        }
    
        func sceneDidBecomeActive(_ scene: UIScene) {
            // Called when the scene has moved from an inactive state to an active state.
            // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
        }
    
        func sceneWillResignActive(_ scene: UIScene) {
            // Called when the scene will move from an active state to an inactive state.
            // This may occur due to temporary interruptions (ex. an incoming phone call).
        }
    
        func sceneWillEnterForeground(_ scene: UIScene) {
            // Called as the scene transitions from the background to the foreground.
            // Use this method to undo the changes made on entering the background.
        }
    
        func sceneDidEnterBackground(_ scene: UIScene) {
            // Called as the scene transitions from the foreground to the background.
            // Use this method to save data, release shared resources, and store enough scene-specific state information
            // to restore the scene back to its current state.
        }
    


    메인 런 루프:


  • 앱의 기본 실행 루프는 모든 사용자 관련 이벤트를 처리합니다.
  • 앱 델리게이트는 시작 시간에 기본 실행 루프를 설정하고 이를 사용하여 이벤트를 처리하고 보기 기반 인터페이스에 대한 업데이트를 처리합니다.
  • 메인 런 루프가 앱의 메인 스레드에서 실행됨
  • 기본 스레드는 직렬 스레드이며 이를 통해 사용자 관련 이벤트가 수신된 순서대로 직렬로 처리됩니다.
  • 좋은 웹페이지 즐겨찾기