안드로이드는 4대 컴포넌트가 존재하는데 그 중 하나인 액티비티에 대해 정리해보려한다.
액티비티의 특징
1. 사용자와 상호작용을 하기 위한 진입점이다.
2. 앱에서 하나 이상 필요한 존재이다.
3. UI를 하나 이상 갖고 있다.
액티비티의 생명주기
안드로이드 생명주기를 보여주는 메서드들은 콜백 메서드 개념으로 구현되어 있다.
onCreate()
- 생명주기 메서드 중 가장 먼저 실행되는 메서드
- 전체 주기 동안 한 번만 발생해야 하는 기본 시작 로직
- 주로 데이터 목록 바인딩, 활동을 ViewModel과 연결, 일부 클래스 범위 변수를 인스턴스화 등을 처리함
- savedInstanceState 매개 변수를 수신 하며 이를 통해 이전 저장 상태가 포함된 Bundle 객체를 수신할 수 있음
onStart()
- 액티비티의 활동이 시작되면 메서드가 실행됨
- 포그라운드에 활동을 보내고 상호작용 준비를 함
- 주로 UI를 관리하는 코드를 초기화
- 굉장히 빠르게 완료되며 바로 onResume()메서드를 호출
onResume()
- 이 메서드가 실행된 상태에선 활동이 포그라운드에 표시되며 앱이 사용자와 상호작용을 수행
- 앱의 포커스가 떠날때까지 앱은 이 상태에서 머무름
onPause()
- 사용자가 활동을 떠날때 가장 먼저 실행되는 메서드, 활동이 포그라운드에서 사라진 상태(다만 활동이 무조건 소멸된다는 뜻은 아님, 사용자가 멀티 윈도우 모드에 있는 경우도 이 상태로 간주)
onStop()
- 활동이 더 이상 표시되지 않으면 이 메서드가 실행 (새로운 활동이 화면 전체를 차지하는 경우 적용)
- 사용자에게 보이지 않는 동안 앱에서 필요하지 리소스를 해제하거나 조정해야함 (예를 들면 애니메이션이 있는 경우 종료 시켜야함)
- CPU를 비교적 많이 소모하는 종료 작업을 이때 실행해야하며 정보를 데이터베이스에 저장할 수 있다.
- 앱이 다시 시작되면 onRestart()로 종료되면 onDestroy()로 이동
onDestroy()
- 활동이 소멸되기 직전에 실행되는 메서드 (활동을 완전히 닫아서 finish()가 호출된 경우, 기기회전 및 멀티 윈도우 모드로 이해 시스템을 일시적으로 소멸시키는 경우)
- ViewModel은 onDestroy()되어도 보존되어 다음 활동 인스턴스에 전달되므로 필요에 따라 onCleared() 메서드를 호출하여 소멸되기 전에 모든 데이터를 정리해야함
이상 액티비티에 대해 정리해보았고 앞으로 생명주기 메서드에 맞게 기능들을 배치해야겠다.
'개발 > Android' 카테고리의 다른 글
WorkManager 소개 (0) | 2023.07.19 |
---|---|
[Android] 구글 인앱 결제 (0) | 2021.03.20 |
안드로이드 4대 컴포넌트 (0) | 2021.03.05 |
[Android] 화면 크기 별 Layout 생성 (0) | 2021.03.05 |
[Android] Serialize, Parcelable, Parcelize 정리 (0) | 2021.03.05 |