앱이 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나 배터리를 소모하지 않습니다. 언제든지 메모리 부족등의 이유로 종료됨.)
'ios > 면접질문 공부' 카테고리의 다른 글
Delegate란 무언인가 설명하고, retain 되는지 안되는지 그 이유를 함께 설명하시오. (0) | 2024.01.12 |
---|---|
Foundation Kit은 무엇이고 어떤 클래스들이 포함되어있는지 설명하세요. (0) | 2024.01.09 |
@main에 대해서 설명하시오. (2) | 2024.01.02 |
앱이 시작할 때 main.c 에 있는 UIApplicationMain 함수에 의해서 생성되는 객체는 무엇인가? (0) | 2023.12.30 |
App thinning에 대해서 설명하시오. (0) | 2023.12.19 |
블로그의 정보
Beautiful Coding
사슴비행기