반응형

안녕하세요.

안드로이드 앱의 액티비티(Activity)는 다음과 같은 생명주기에 의해 동작을 합니다.

 

* 액티비티 상태

상태 설명
활성 상태(running) 현재 Activity가 화면을 점유하여 출력되며 사용자 이벤트 처리가 정상으로 처리되고 있는 상태
일시 정지 상태(pause) 현재 Activity가 일시적으로 사용이 불가능한 상태
비활성 상태(stop) 현재 Activity가 다른 Activity로 인해 화면이 완벽하게 가려진 상태

 

 

액티비티 생명주기는 onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestory() 순으로 실행되며, 경우에 따라서 onRestart() 함수가 호출되기도 한다.

 

API 액티비티 생명주기

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

※ onStop(), onDestory()는 호출되지 않을 수도 있음

 

◈ Activity 활성 상태

Activity가 사용자 화면에 보이고 포커스를 가지고 있어 사용자 이벤트에 반응할 수 있는 상태.
생성된 Activity는 onCreate() -> onStart -> onResume() 함수가 호출되면서 활성 상태가 됨.
활성 상태는 사용자에게 Activity 화면이 보이고 있는 것으로, onResume() 함수 호출 전까지 
Activity 화면 내용이 출력 되어야 함.

 

 

◈ Activity 일시 정지 상태

Activity가 여전히 화면에 보이지만 포커스를 잃은 상태.
대표적인 예가 다른 Activity가 화면 전체를 가리지 않고 실행 되었을때, 
다른 Activity가 반투명하게 실행되거나 다이얼로그 스타일로 실행되어 자신이
화면에 보이지만 포커스를 잃은 상태.
대부분 정지 상태(onStop)로 전환되기 전에 호출되어 곧 정지될 것임을 나타내기 위해 사용.
일시 정지 상태가 되면 onPause() 함수가 자동으로 호출됨.

 

 

◈ Activity 비활성 상태

다른 Activity로 인해 화면이 완전히 가려진 상태.
보통 다른 Activity로 화면이 전환되어 안 보이는 경우.
이렇게 되면 onPause() -> onStop() 함수까지 호출됨.

화면을 가렸던 Activity가 뒤로가기 비활성 상태에서 뒤로가기 버튼 으로 
화면을 가렸던 Activity가 사라지면 다시 활성 상태로 전환.
이때는 onRestart() -> onStart() -> onResume() 함수가 차례로 호출됨.
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기