Language/Swift

iOS - AppDelegate

비코딩 2022. 10. 27. 16:45

 - App 생명 주기 상태에 접근하기 위해 AppDelegate.swift 파일을 사용

 - 프로젝트 내의 AppDelegate.swift 안에서 관리되는 생명 주기

 - AppDelegate는 앱의 상태에 따라 실행되는 Delegate 메소드를 담고 있다.

 

application(_:willFinishLaunchingWithOptions:)

  • App이 최초 실행될 때 호출되는 메소드
  • Not Running -> Foreground 로 상태 변환

 

application(_:didFinishLaunchingWithOptions:)

  • App이 실행 직후 화면이 사용자에게 보여지기 직전에 호출
  • 초기화 코드 작성

 

applicationDidBecomeActive(_:)

  • App이 Active 상태로 전환되어 화면이 나타난 후 직후 호출
  • Inactive 상태로 넘어가 중지된 작업을 여기서 반드시 재실행시켜줘야 함 ex) 화면 갱신 등

 

applicationWillResignActive(_:)

  • App이 Inactive 상태로 전환되기 직전 호출

 

applicationDidEnterBackground(_:)

  • App이 Background 상태로 전환된 직후 호출
  • Background 상태에서 Suspended 상태로 전환
  • App이 언젠가 종료될 것임을 뜻하기 때문에 중요한 사용자 데이터를 저장하거나, 공유 자원을 해제하는 등의 작업 수행 필요
  • App이 재실행될 때 직전 상태를 복구할 수 있는 정보를 저장하는 코드 작성

 

applicationWillEnterForeground(_:)

  • App이 Background에서 Foreground로 돌아오기 직전, 화면에 보여지기 직전 호출
  • 호출된 뒤 Inactive 상태를 거쳐 Active 상태로 진입

 

applicationWillTerminate(_:)

  • App이 종료되기 직전에 호출
  • 다음 경우에는 호출되지 않음
    • 메모리 확보를 위해 Suspended 상태에 있는 app을 종료시킬 때
    • 사용자가 multitasking UI를 통해 종료할 때
    • 오류로 인해 app이 종료될 때
    • Deivce를 재부팅할 때

[출처 : https://jinee0717.tistory.com/72]