비디오: Google Keynote (Google I/O'19) 2024
물론 iOS 시스템으로 작성된 앱은 실행되는 일련의 상태. 이러한 상태를 앱의 라이프 사이클 상태라고합니다. 앱이 라이프 사이클 상태를 거치면서 앱 실행 상태는 실행되지 않음, 활성 또는 일시 중지됨과 같은 액티비티 수준에 의해 정의됩니다.
상태에 대한 자세한 정보는 다음과 같습니다.
-
실행되지 않음 상태에있는 앱이 실행되지 않았거나 시스템이 종료되었습니다.
-
앱이 시작되면 비활성 상태라는 짧은 상태로 전환됩니다. 실제로 실행 중이지만 다른 기능을 수행 중이며 사용자 입력이나 이벤트를 받아 들일 준비가되어 있지 않습니다.
-
활성 상태의 앱이 포 그라운드에서 실행되고 이벤트를 수신 중입니다. 이것은 포 그라운드 응용 프로그램의 일반 모드입니다. 사용자 인터페이스없이 백그라운드에서 실행할 필요가없는 응용 프로그램입니다.
-
Background 상태에있는 앱의 사용자 인터페이스는 표시되지 않지만 는 실행 중입니다. 대부분의 앱은 일시 중지되는 동안이 상태를 통해 전환됩니다. 앱이 추가 실행 시간을 필요로하고 요청할 수 있으며 한동안이 상태를 유지할 수 있습니다. 또한 특정 앱이 백그라운드에서 실행됩니다. 이러한 앱은 백그라운드 상태로 직접 들어가고 비활성 상태를 통과하지 않습니다.
-
Suspended 상태로 옮길 수 있습니다. 여기에 앱은 백그라운드에 있지만 실행 코드가 아닌 입니다. 그것은 기억에 머물러 있습니다. 메모리 부족 상태가 발생하면 시스템이 예고없이 일시 중지 상태의 응용 프로그램을 제거 할 수 있습니다. Apple의 표준에 따르면 iOS 시스템 만이 앱을 죽일 수 있습니다. 앱의 라이프 사이클이 진행됨에 따라 lifecycle 메소드라고하는 특정 표준 메소드가 iOS에 의해 호출됩니다. 이러한 상태가 진행됨에 따라 앱 수명주기의 각 전환마다 앱 별 동작을 추가 할 수 있습니다.
이 라이프 사이클의 신뢰성에 대한 영향은 앱이 포 그라운드에서 백그라운드로 전환 될 때마다 일시 중지되고 종료 될 때마다 보유하고있는 모든 리소스를 포기해야한다는 것입니다 (예: 네트워크 연결 및 파일 포인터). 현역으로 복원되거나 다시 시작될 때 보존하려는 상태를 저장합니다 (이 프로세스는 체크 포인트
라고도 함).
-
그러나 앱을 종료 할 때 자원을 포기하고 상태를 저장하는 것은 이야기의 절반에 불과합니다. 앱이 시작 시퀀스를 거치고 함수를 통해 (구체적으로 말해서 각보기 컨트롤러를로드하고 종료 할 때) 포기해야하는 항목과 보존해야하는 상태를 등록해야 리소스가 해제되고 앱이 종료되면 상태가 저장됩니다.