앱이 foreground에 있을 때와 background에 있을 때 어떤 제약사항이 있나요?
by 사슴비행기foreground
- 사용자 인터랙션 및 업데이트
- 성능 및 자원 사용
background
- 사용자 인터랙션 및 업데이트
- 제약된 자원 사용
- Background Tasks
- 알림 및 로컬 알림
- 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
사슴비행기활동하기
Beautiful Coding언젠간 Beautiful Coding을 하겠다는 마음으로
공부와 실수를 기록합니다.