면접 질문 : 앱이 foreground에 있을 때와 background에 있을 때 어떤 제약사항이 있나요?
Foreground mode
•
메모리 및 기타 시스템 리소스에 높은 우선순위를 가진다.
•
시스템은 이러한 리소스를 사용할 수 있도록 필요에 따라 background 앱을 종료한다.
Background mode
•
가능한 적은 메모리 공간을 사용해야한다 (시스템 리소스 해제, 메모리에서 해제 후, 데이터를 디스크에 작성)
•
사용자 이벤트를 받기 어렵고, 공유 시스템 리소스를 해제하고 이미지 객체 참조 등 메모리 제한한다.
not Running
•
앱이 실행되지 않은 상태
Foreground 상태
•
앱이 실행되어 클라이언트에게 보여지고 있는 상태
◦
Inactive
▪
앱이 실행 중이지만, 아직 아무런 이벤트를 받지 않은 상태
▪
Foreground 상태에서 전화가 왔을 때 잠금상태, 멀티태스킹 스크린에서는 InActive 상태를 가진다.
◦
Active
▪
앱이 실행 중이며, 현재 이벤트를 받고 있고 발생한 상태
Background
•
앱이 백그라운드에 있는 상태이지만, 여전히 실행되고 있는 코드가 있는 상태
Suspend
•
앱이 백그라운드에 있고, 실행되는 코드가 없는 상태
•
앱은 여전히 메모리에 존재하며, Suspend 상태가 될 당시의 상태를 저장하고 있지만, CPU나 배터리 소모가 없다. 언제든지 메모리 부족 등의 이유로 종료될 수 있다.