안드로이드/이론관련

액티비티 생명 주기(Activity Lifecycle)

닉네임못짓는사람 2023. 2. 27. 20:03
반응형

이번 글에서는 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의 각 상태에 따라서

적절한 작업을 실행할 수 있기때문에 더욱 효과적인 프로그래밍이 가능하다.

반응형