이번 글에서는 Activity Lifecycle에 대해서 알아보자.
이전에 안드로이드 4대 컴포넌트에 대해서 글을 썻는데, Activity는 이 중 하나이며
사용자에게 실제로 보여지는 화면이기 때문에 안드로이드에서 가장 기본이 되는 구성요소라고 할 수 있다.
이 Activity는 생명주기를 갖는데, Activity가 만들어지고 사용자에게 보여지고, 없어지는 과정에서
변화하는 상태에 따라 실행되는 콜백 메소드들을 이야기한다.
또한 Activity는 총 세 가지 상태를 가지는데, 이는 아래와 같은 것들이 있다.
1. RESUMED : Activity가 Focus를 가지고(화면 최상단)화면에 보이는 생태이다.
2. PAUSED : Activity가 화면에 보이지만 Focus를 가지지 못한 상태이다.
3. STOPPED : Activity가 보이지 않는상태이다. 다른 Activity에 가려지거나 홈버튼으로 나가는 등의 상황이다.
아래 그림으로 Activity의 생명 주기들을 확인해보자.
그림을 보면 Activity는 총 7개의 생명주기 메소드를 가지며
onCreate() -> onStart -> onResume() -> onPause() -> onStop() -> onDestroy()순으로 진행된다.
또한 onStop() -> onRestart() -> onStart()로 가기도 한다.
그럼 이제 각 부분에 대해서 어떤 뜻인지 살펴보도록 하자.
1. Activity launched : Activity가 실행됨, 이후 onCreate가 실행된다.
예를들어 여러분이 카카오톡에서 채팅방에 들어가려고 터치를 하는 순간이 이 부분이라고 할 수 있을것이다.
2. onCreate() : Activity를 생성한다. 이후 onStart()가 실행된다.
가장 최초로 실행되기 때문에 초기화 작업 등을 수행해주는것이 좋다.
3. onStart() : Activity가 사용자에게 보여지기 직전에 호출된다. 이후 onResume()이 실행된다.
이 시점에서 사용자는 실제로 Activity를 눈으로 볼 수 있게된다.
4. onResume() : Activity가 사용자와 상호작용하기 직전에 호출된다. 이후 RESUMED상태가 된다.
Activity가 실제로 활성화 된 상태이다.
5. Activity running : Activity가 사용자와 상호작용하는 단계이다.
6. onPause() : Activity가 Focus를 가지고 있지 않으면 호출된다. 이후 PAUSED상태가 된다.
다시 Activity가 Focus를 다시 가지면 onResume()이 실행된다.
참고로 Dialog는 Activity의 일부이기 때문에 onPause()가 실행되지않는다.
7. onStop() : Activity가 화면을 완전히 벗어나면 호출된다. 이후 STOPPED상태가 된다.
다시 Activity로 돌아오면 onRestart()가 실행된다.
8. onRestart() : Activity가 STOPPED상태에서 다시 보여질 때 실행된다. 이후 onStart()가 실행된다.
9. onDestroy() : Activity가 소멸(종료)되기 전에 호출된다.
10. Activity shut down : Activity가 종료된 상태이다.
위와 같은 생명주기 메소드들을 활용하면 Activity의 각 상태에 따라서
적절한 작업을 실행할 수 있기때문에 더욱 효과적인 프로그래밍이 가능하다.
'안드로이드 > 이론관련' 카테고리의 다른 글
액티비티(Activity)와 프래그먼트(Fragment) (0) | 2023.02.27 |
---|---|
안드로이드 4대 컴포넌트(구성요소) (0) | 2023.02.27 |
레이아웃의 종류 (0) | 2022.02.07 |
리스트뷰(List View) vs 리사이클러뷰(Recycler View) (0) | 2022.01.27 |
JAR, DEX, APK, AAR파일 (0) | 2021.12.20 |