About the Background Execution Sequence

Panther·2021년 8월 16일
0

https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background/about_the_background_execution_sequence

"Learn the order in which your custom code is executed when your app moves to the background."

앱이 백그라운드로 이동할 때 커스텀 코드가 수행되는 순서에 대해 알아봅니다.

Overview

앱은 여러 가지 다른 시작점 중 한 가지로부터 백그라운드로 진입하게 될 것입니다. 시스템 이벤트는 일시정지된 앱은 백그라운드로 보낼 수 있습니다. 혹은 실행중이지 않은 앱을 백그라운드에서 launch 되도록 할 수도 있습니다. 다른 앱이 launch되거나 사용자가 홈 스크린으로 이동할 때 포어그라운드 앱은 백그라운드로 전환합니다.

Figure 1 The background execution sequence

Handle Background Events

백그라운드 모드 기능 중 한 가지를 지원하느 앱의 경우 시스템은 해당 기능과 관련이 있는 이벤트를 처리하기 위해 앱을 백그라운드에서 launch하거나 재개합니다. 예를 들어 시스템은 위치 업데이트에 대한 응답 혹은 백그라운드 가져오기를 수행하기 위해서 앱을 launch하거나 재개할 것입니다.

이벤트가 도착했을 때 앱이 실행중이지 않다면, 시스템은 앱을 launch하고 백그라운드로 직접 이동시킵니다. 아래 순서르 따릅니다.

  1. 시스템은 앱을 launch하고 About the App Launch Sequence에서 설명하고 있는 초기화 단계를 따라갑니다.
  2. UIKit이 앱 딜리게이트의 applicationDidEnterBackground(_:) 메소드를 호출합니다.
  3. UIKit이 launch를 발생시키는 이벤트를 전달합니다.
  4. 앱의 스냅샷이 생깁니다.
  5. 앱은 다시 일시정지됩니다.

About the App Launch Sequence
https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app/about_the_app_launch_sequence
https://velog.io/@panther222128/About-the-App-Launch-Sequence

이벤트가 도착했을 때 앱이 메모리에 있거나 일시정지 상태인 경우 시스템은 앱을 백그라운드에서 재개합니다. 아래 순서와 같습니다.

  1. 시스템이 앱을 재개합니다.
  2. UIKit이 앱 딜리게이트의 applicationDidEnterBackground(_:) 메소드를 호출합니다.
  3. UIKit이 launch를 발생시키는 이벤트를 전달합니다.
  4. 앱의 스냅샷이 생깁니다.
  5. 앱은 다시 일시정지됩니다.

Transition from the Foreground

다른 앱이 launch 되거나 사용자가 홈 스크린으로 돌아가면, 포어그라운드 앱은 백그라운드로 이동합니다. 아래 순서와 같습니다.

  1. 사용자가 실행중인 앱에서 빠져나옵니다.
  2. UIKit은 앱 딜리게이트의 applicationWillResignActive(_:) 메소드를 호출합니다.
  3. UIKit은 앱 딜리게이트의 applicationDidEnterBackground(_:) 메소드를 호출합니다.
  4. 앱의 스냅샷이 생깁니다.
  5. 앱은 다시 일시정지됩니다.

See Also


Background Execution

Updating Your App with Background App Refresh

필요에 따라 백그라운드에서 컨텐트를 가져오고 앱의 인터페이스를 업데이트합니다.

https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background/updating_your_app_with_background_app_refresh
https://velog.io/@panther222128/Updating-Your-App-with-Background-App-Refresh

Extending Your App's Background Execution Time

앱이 백그라운드로 이동할 때 중요한 작업을 마무리할 수 있도록 합니다.

https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background/extending_your_app_s_background_execution_time
https://velog.io/@panther222128/Extending-Your-Apps-Background-Execution-Time


0개의 댓글