Lined Notebook

앱이 foreground에 있을 때와 background에 있을 때 어떤 제약사항이 있나요?

by 사슴비행기

foreground

  1. 사용자 인터랙션 및 업데이트
  2. 성능 및 자원 사용
 

background

  1. 사용자 인터랙션 및 업데이트
  2. 제약된 자원 사용
  3. Background Tasks
  4. 알림 및 로컬 알림
  5. Background App Refresh
 
앱이 foreground 또는 background에 있을 때의 동작은 앱의 종류와 기능에 따라 다르며, 각 상태에서의 적절한 동작을 구현하는 것이 중요합니다.
 

 

  • Foreground mode는 메모리 및 기타 시스템 리소스에 높은 우선순위를 가지며 시스템은 이러한 리소스를 사용할 수 있도록 필요에 따라 background 앱을 종료합니다.
  • Background mode는 가능한 적은 메모리공간을 사용해야함(시스템 리소스 해제, 메모리에서 해제 후 데이터를 디스크에 작성)
 
 
application(_:didFinishLaunching:) - 앱이 처음 시작될 때 실행
applicationWillResignActive:       - 앱이 active 에서 inactive로 이동될 때 실행 
applicationDidEnterBackground:     - 앱이 background 상태일 때 실행 
applicationWillEnterForeground:    - 앱이 background에서 foreground로 이동 될때 실행 (아직 foreground에서 실행중이진 않음)
applicationDidBecomeActive:        - 앱이 active상태가 되어 실행 중일 때
applicationWillTerminate:          - 앱이 종료될 때 실행
  • not Running
    앱이 실행되지 않은 상태
  • Foreground상태
    - Inactive
    앱이 실행중이지만 아직 아무런 이벤트를 받지 않은 상태 (Foreground 상태에서 전화가 왔을때, 잠금상태, 멀티태스킹 스크린에서는 InActive 상태를 가집니다.)
    - Active
    앱이 실행중이며 현재 이벤트를 받고 있고 발생한 상태
  • Background
    앱이 백그라운드에 있는 상태이지만 여전히 실행되고있는 코드가 있는 상태
  • Suspened
    앱이 백그라운드에 있고 실행되는 코드가 없는 상태 (App은 여전히 메모리에 존재하며 Suspend 상태가 될 당시의 상태를 저장하고 있지만, CPU나 배터리를 소모하지 않습니다. 언제든지 메모리 부족등의 이유로 종료됨.)

블로그의 정보

Beautiful Coding

사슴비행기

활동하기