티스토리 뷰

안녕하세요, Activity의 생명주기(Lifecycle)를 왜 알아야 할까요? 안드로이드 액티비티의 생명주기에 대해서 정리해보려고 합니다.

위의 굉장히 중요한 질문입니다. 저희는 왜 생명주기에 대해서 알아야 할까요? 


액티비티 생명주기 사용하는 이유는?

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


  이러한 문제들을 생명주기의 각 메소드에서 예외처리나 기능 구현을 통해 예방할 수 있습니다. 이런 여러 상황들을 대응하고자 액티비티의 생명주기가 존재합니다. 그렇기 때문에 안드로이드 개발자들은 해당 사항에 대해서 필수적으로 알아야 합니다!! 정말 꼭 알아야 합니다. 그렇다고 무작정 암기하는 것은 좋지 않아요. 개발을 하면서 감을 익혀가다보면 자연스럽게 외워집니다. 그러니 너무 부담갖지 마시고 따라오세요!


해당 이미지는 액티비티의 생명주기 과정을 나타낸 사진입니다. 


각 과정에 대해서 정리해보겠습니다. 


Activity의 시작 부분

1. OnCreate()

- 특정 액티비티가 생성되었을 때 시작하는 메소드입니다. 맨 처음에 시작하며, 해당 액티비티가 없어지지 않는 한(Destroy) 단 한번만 시작됩니다.


2. OnStart()

- 액티비티가 화면에 표시될 때 실행되는 메소드입니다. 


3. OnResume()

- 액티비티가 이제 화면에 완전히 화면에 보이고, 기능을 실행할 수 있습니다. 



Activity가 가려지거나 화면에서 보이지 않는 경우 

4. OnPause()

- 액티비티가 완전히 보여지지 않은 경우, 화면이 조금 가려져 있는 경우 실행됩니다. 그리고 다른 페이지를 넘어가는 경우에 시작됩니다. 


5. OnStop()

- 다른 액티비티에 의해 완전히 화면이 가려지는 경우에 실행됩니다. 화면을 이동한 경우에 실행됩니다. 

- 일반적으로 애니메이션을 중지하고 UI를 새로 고치는 등의 작업에 사용됩니다.


6. OnDestory()

- 해당 액티비티에서 완전히 종료되거나 제거된 경우에 사용됩니다. 해당 메소드가 실행되면 메모리에서 액티비티가 제거됩니다. 

- finish()를 통해 Activity를 종료한 경우



처음 공부하시는 분들은 이런 것들이 있구나 정도만 알아주세요. 개발하다 보면 감이 더 잡히게 됩니다. 

읽어주셔서 감사합니다. 


댓글