본문 바로가기
Android

[Android] Activity 정리 (4대 컴포넌트)

by 준그래머 2021. 3. 6.
반응형

안드로이드는 4대 컴포넌트가 존재하는데 그 중 하나인 액티비티에 대해 정리해보려한다.

액티비티의 특징

1. 사용자와 상호작용을 하기 위한 진입점이다.

2. 앱에서 하나 이상 필요한 존재이다.

3. UI를 하나 이상 갖고 있다. 

 

 

액티비티의 생명주기

출처: https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko

안드로이드 생명주기를 보여주는 메서드들은 콜백 메서드 개념으로 구현되어 있다.

 

onCreate()

 - 생명주기 메서드 중 가장 먼저 실행되는 메서드

 

 - 전체 주기 동안 한 번만 발생해야 하는 기본 시작 로직

 

 - 주로 데이터 목록 바인딩, 활동을 ViewModel과 연결, 일부 클래스 범위 변수를 인스턴스화 등을 처리함

 

 -  savedInstanceState 매개 변수를 수신 하며 이를 통해 이전 저장 상태가 포함된 Bundle 객체를 수신할 수 있음

 

 

onStart()

 - 액티비티의 활동이 시작되면 메서드가 실행됨

 - 포그라운드에 활동을 보내고 상호작용 준비를 함

 - 주로 UI를 관리하는 코드를 초기화

 - 굉장히 빠르게 완료되며 바로 onResume()메서드를 호출

 

onResume()

 - 이 메서드가 실행된 상태에선 활동이 포그라운드에 표시되며 앱이 사용자와 상호작용을 수행

 - 앱의 포커스가 떠날때까지 앱은 이 상태에서 머무름

 

onPause()

 - 사용자가 활동을 떠날때 가장 먼저 실행되는 메서드, 활동이 포그라운드에서 사라진 상태(다만 활동이 무조건 소멸된다는 뜻은 아님, 사용자가 멀티 윈도우 모드에 있는 경우도 이 상태로 간주)

 

onStop()

 - 활동이 더 이상 표시되지 않으면 이 메서드가 실행 (새로운 활동이 화면 전체를 차지하는 경우 적용)

 - 사용자에게 보이지 않는 동안 앱에서 필요하지 리소스를 해제하거나 조정해야함 (예를 들면 애니메이션이 있는 경우 종료 시켜야함)

 - CPU를 비교적 많이 소모하는 종료 작업을 이때 실행해야하며 정보를 데이터베이스에 저장할 수 있다.

 - 앱이 다시 시작되면 onRestart()로 종료되면 onDestroy()로 이동

 

onDestroy()

 - 활동이 소멸되기 직전에 실행되는 메서드 (활동을 완전히 닫아서 finish()가 호출된 경우, 기기회전 및 멀티 윈도우 모드로 이해 시스템을 일시적으로 소멸시키는 경우)

 - ViewModel은 onDestroy()되어도 보존되어 다음 활동 인스턴스에 전달되므로 필요에 따라 onCleared() 메서드를 호출하여 소멸되기 전에 모든 데이터를 정리해야함

 

 

이상 액티비티에 대해 정리해보았고 앞으로 생명주기 메서드에 맞게 기능들을 배치해야겠다.

 

반응형