Activity Life Cycle

jihyo·2021년 6월 30일
0

Android

목록 보기
4/17

Activity Life Cycle에 대한 이해

Life Cycle Callback을 잘 구현하지 않으면 앱에서 다음과 같은 문제가 발생할 수 있다.

  • 사용자가 앱을 사용하는 도중에 전화가 걸려오거나 다른 앱으로 전환할 때 비정상 종료되는 문제
  • 사용자가 앱을 활발하게 사용하지 않는 경우 귀중한 시스템 리소스가 소비되는 문제
  • 사용자가 앱에서 나갔다가 나중에 돌아왔을 때 사용자의 진행 상태가 저장되지 않는 문제
  • 화면이 가로 방향과 세로 방향 간에 회전할 경우, 비정상 종료되거나 사용자의 진행 상태가 저장되지 않는 문제

사용자가 Acitivy를 벗어났다가 다시 돌아왔을 때 Acitivy가 작동하는 방식을 Life Cycle Callback 메서드에서 선언할 수 있다. 사용자가 돌아오면 네트워크를 다시 연결하고, 사용자가 일시중지한 지점에서 동영상을 다시 시작하도록 한다. 즉, 각 Callback은 상태 변화에 적합한 특정 작업을 실행할 수 있도록 한다.

Activity Life Cycle

Activity Life Cycle 단계 간에 전환하기 위해 Activity 클래스는 6가지 Callback으로 구성된 핵심 집합의 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()를 제공한다. Activity가 새로운 상태에 들어가면 시스템은 각 Callback을 호출한다.

아래 그림은 안드로이드의 Activity Life Cycle의 Callback을 표현한 그림이다.

Activity Life Cycle

사용자가 Activity를 벗어나면 시스템은 Activity를 해체할 메서드를 호출한다. 어떤 경우에는 부분적으로만 해체한다. 이때 Activity는 여전히 메모리 안에 남아 있으며(예: 사용자가 다른 앱으로 전환할 경우) 포그라운드로 다시 돌아올 수 있다. 사용자가 해당 Activity로 돌아오는 경우 사용자가 종료한 지점에서 Activity가 다시 시작된다. 예외를 제외하고 앱은 백그라운드에서 실행될 때 Activity를 실행할 수 없다.

시스템은 그 시점의 Activity 상태에 따라 특정 프로세스와 그 안의 Activity을 함께 종료할지 여부를 결정한다. Activity 상태 및 메모리에서 제거는 Activity 상태와 제거 취약성과의 관계에 관한 자세한 정보를 제공한다.

Activity의 복잡도에 따라, 모든 Life Cycle 메서드를 구현할 필요가 없는 경우도 있다. 하지만 각각의 Life Cycle 메서드를 이해하고, 사용자가 예상한 대로 앱이 동작하도록 필요한 Life Cycle 메서드를 구현하는 것이 중요하다.

0개의 댓글