SW/앱플랫폼

앱플랫폼 : 안드로이드 라이프 사이클 : 개념, 동작, 방식

얇은생각 2019. 6. 20. 07:30
반응형

Activity Lifecycle 이해


사용자가 앱에서 이동, 복귀할 때 앱의 활동 인스턴스는 라이프사이클의 다른 스테이트를 통해 전환됩니다. Activity Class는 시스템이 Activity를 생성, 중지, 재개하거나 활동이 존재하는 프로세스를 파괴하는 등 상태가 변경되었음을 Activity가 알 수 있도록 하는 많은 콜백을 제공합니다.


라이프사이클 콜백 방법 내에서 사용자가 Activity를 종료하고 다시 시작할 때 Activity이 어떻게 이루어지는지 선언할 수 있습니다. 예를 들어 스트리밍 비디오 플레이어를 구축하는 경우 사용자가 다른 앱으로 전환할 때 비디오를 일시 중지하고 네트워크 연결을 종료할 수 있습니다. 사용자가 돌아오면 네트워크에 다시 연결하여 사용자가 동일한 위치에서 비디오를 재개할 수 있도록 할 수 있습니다. 즉, 각 콜백은 주어진 스테이트 변화에 적합한 특정 작업을 수행할 수 있게 해줍니다. 적절한 시간에 적절한 작업을 수행하고 전환 작업을 적절하게 처리하면 앱의 견고성과 성능이 향상됩니다. 예를 들어 LifeCylcle 콜백을 잘 구현하면 앱이 아래 제시된 상황을 방지하는 데 도움이 됩니다.


- 앱을 사용하는 동안 사용자가 전화를 받거나 다른 앱으로 전환해 충돌나는 경우

- 사용자가 사용하지 않을 때 귀중한 시스템 리소스를 사용하는 경우

- 사용자가 앱에서 나갔다가 나중에 다시 돌아올 경우 진행 중인 작업이 손실되는 경우

- 화면이 가로 방향과 세로 방향 사이에서 회전할 때 사용자의 진행 상태가 충돌하거나 손실되는 경우


라이프사이클 처리에 대한 자세한 내용은 라이프사이클 인식 구성 요소를 사용한 라이프사이클 처리 및 UI 상태 저장을 참조하십시오. 아키텍처 구성 요소와 함께 작업을 사용하여 강력한 프로덕션 품질의 앱을 설계하는 방법에 대한 자세한 내용은 앱 아키텍처 안내서를 참조하십시오.



Activity-lifecycle 컨셉

Activity Lifecycle의 state 간 전환을 탐색하기 위해 활동 클래스는 6개의 콜백으로 구성된 핵심 세트를 제공합니다. 


onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy().


시스템은 활동이 새로운 상태에 진입할 때 이러한 콜백을 각각 호출합니다.


다음 그림은 이러한 패러다임을 표현하였습니다.




사용자가 Activity를 종료하기 시작하면 시스템이 Activity를 해체하는 메소드를 호출합니다. 경우에 따라 이러한 해체는 부분적일 뿐이며, Activity이 메모리에 남아 있으며(예: 사용자가 다른 앱으로 전환할 때) 여전히 전면에 나타날 수 있습니다. 사용자가 해당 Activity로 복귀하는 경우, 해당 Activity는 사용자가 종료한 곳에서 재개됩니다. 시스템이 특정 프로세스를 죽일 가능성은 그 당시의 활동 상태에 따라 달라집니다. 활동 상태와 메모리로부터의 배출은 state와 배출에 대한 취약성 사이의 관계에 대한 더 많은 정보를 제공합니다.


Activity의 복잡성에 따라 모든 라이프사이클 메소드를 구현할 필요는 없을 것이다. 하지만, 각각의 것을 이해하고 앱이 사용자들이 기대하는 대로 작동하도록 구현하는 것이 중요합니다.


더욱 자세한 내용은 안드로이드 개발 문서에 제공되고 있습니다. 해당 레퍼런스를 참조하시면 큰 도움이 될 것 같습니다.

반응형