Life Cycle Callback을 잘 구현하지 않으면 앱에서 다음과 같은 문제가 발생할 수 있다.
사용자가 Acitivy를 벗어났다가 다시 돌아왔을 때 Acitivy가 작동하는 방식을 Life Cycle Callback 메서드에서 선언할 수 있다. 사용자가 돌아오면 네트워크를 다시 연결하고, 사용자가 일시중지한 지점에서 동영상을 다시 시작하도록 한다. 즉, 각 Callback은 상태 변화에 적합한 특정 작업을 실행할 수 있도록 한다.
Activity Life Cycle 단계 간에 전환하기 위해 Activity 클래스는 6가지 Callback으로 구성된 핵심 집합의 onCreate()
, onStart()
, onResume()
, onPause()
, onStop()
, onDestroy()
를 제공한다. Activity가 새로운 상태에 들어가면 시스템은 각 Callback을 호출한다.
아래 그림은 안드로이드의 Activity Life Cycle의 Callback을 표현한 그림이다.
사용자가 Activity를 벗어나면 시스템은 Activity를 해체할 메서드를 호출한다. 어떤 경우에는 부분적으로만 해체한다. 이때 Activity는 여전히 메모리 안에 남아 있으며(예: 사용자가 다른 앱으로 전환할 경우) 포그라운드로 다시 돌아올 수 있다. 사용자가 해당 Activity로 돌아오는 경우 사용자가 종료한 지점에서 Activity가 다시 시작된다. 예외를 제외하고 앱은 백그라운드에서 실행될 때 Activity를 실행할 수 없다.
시스템은 그 시점의 Activity 상태에 따라 특정 프로세스와 그 안의 Activity을 함께 종료할지 여부를 결정한다. Activity 상태 및 메모리에서 제거는 Activity 상태와 제거 취약성과의 관계에 관한 자세한 정보를 제공한다.
Activity의 복잡도에 따라, 모든 Life Cycle 메서드를 구현할 필요가 없는 경우도 있다. 하지만 각각의 Life Cycle 메서드를 이해하고, 사용자가 예상한 대로 앱이 동작하도록 필요한 Life Cycle 메서드를 구현하는 것이 중요하다.