안드로이드 액티비티의 인생 - 액티비티 생명주기(LifeCycle)

JoJo Develog·2020년 3월 6일
2

Android

목록 보기
2/19

지난 글에서 액티비티란 간단하게 무엇인가 설명했었는데요.
오늘은 안드로이드 액티비티의 생명주기에 대해 간략하게 이야기해볼까 합니다.

액티비티(Activity)는 메모리에 상주되면서 소멸되기까지의 <생명주기>를 가지고 있습니다.
그래서 생명주기에 따라 콜백 메서드가 호출이 되는데 액티비티를 구현할 시에 반드시 알아야 하는 내용이며 안드로이드에서 액티비티의 생명주기에 대한 이해는 중요합니다!
제가 대학생 시절 안드로이드 개발을 가장 처음 배울 때도 중요했으며 실무에서 개발하고 있는 지금도 생명주기가 매우 중요하다고 생각합니다.

구글 안드로이드 API 가이드 액티비티 라이프사이클

위 이미지는 구글 안드로이드 레퍼런스 API 가이드에 나오는 액티비티 생명주기 설명 이미지입니다.
아마 안드로이드를 접해보신 분들이라면 많이 보셨을 플로우 차트입니다.
안드로이드를 접하신 지 얼마 안 된 분이시라면 저는 저 플로우 차트를 이해하고 외우시는걸 강력 추천해드립니다. 물론 어렵게 느껴지실 수 있지만 한번 이해만 하면 금방 외웁니다!

응? 외우라고???😱 그냥 외우세요..







각 메서드 순서는 onCreate() ► onStart() ► onResume() ► onPause() ► onStop() ► onDestory()순으로 실행이 되며, 상황에 따라 onRestart() 메소드가 호출되기도 합니다.

아래는 각 생명주기 메서드에 관한 간략한 설명인데요.
잘 정리된 것이 있어 해당 표를 가져왔습니다.

생명주기 메소드

메소드설명다음 메소드
onCreate()액티비티가 생성될 때 호출되며 사용자 인터페이스 초기화에 사용됨.onStart()
onRestart()액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨.onStart()
onResume()액티비티가 사용자와 상호작용하기 바로 전에 호출됨.onPause()
onPause()다른 액티비티가 보여질 때 호출됨. 데이터 저장, 스레드 중지 등의 처리를 하기에 적당한 메소드.onResume() 또는 onStop()
onStop()액티비티가 더이상 사용자에게 보여지지 않을 때 호출됨. 메모리가 부족할 경우에는 onStop() 메소드가 호출되지 않을 수도 있음.onRestart() 또는 onDestroy()
onDestroy()액티비티가 소멸될 때 호출됨. finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해 액티비티를 제거할 때 호출됨.없음

해당 테이블 출처

그래서 각 생명주기 메소드를 잘 오버라이딩하여서 상황에 맞는 기능을 구현하면 됩니다.





설명은 여기까지고 안드로이드 생명주기 내용을 간략하게 추려 봤습니다.

다음 글도 안드로이드 생명주기에 관한 내용입니다만...
이번에 이직 면접을 여러 곳 보면서 대부분의 안드로이드 현직 개발자분들도 잘못 알고 계시는 거 같아 글을 작성해야겠다고 생각했습니다.

아래는 영어로 잘 정리된 글입니다.
https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-i-single-activities-e49fd3d202ab


다음글에서 만나요!

profile
12년도부터 대학에서 안드로이드 모바일을 전공으로 시작하여 "진짜 개발자"를 꿈꾸며 개발공부를 시작했습니다. SW 개발이 재밌어서 여러 방면으로 스터디하며 현재는 새로운 환경 및 새로운 트렌드에도 유연하게 적응을 잘하는 개발자로 성장해 나가는 중입니다. 글 내용에 대한 피드백은 언제나 환영입니다!

0개의 댓글