Activity란?
- 화면 UI를 담당하는 컴포넌트
- 액티비티 역할을 하기 위해서는 Activity 클래스를 상속해야 한다.
- Activity의 생명주기 메소드를 재정의하여 원하는 기능을 구현
특징
- 안드로이드 어플리케이션은 반드시 하나 이상의 Acitivity를 가지고 있어야 함
- 두개의 Activity를 동시에 Display 할 수 없음
- 다른 어플리케이션의 Activity를 불러 낼 수 있음
- Acitivity 내에는 Fragment를 추가하여 화면을 분할시키 수 있음
Activity 상태 및 생명 주기
- onCreate()
- 시스템이 Activity를 생성 할 때 실행, 구현시 Activity의 필수 구성요소를 초기화 해야 함
- 예를 들어, 앱은 여기서 뷰를 생성하고 데이터를 목록에 결합해야 함
- 이 콜백에서 setContentView()를 호출하여 Activity의 UI 레이아웃을 매핑시킴
- 완료 시 Activity 상태 : Created
- onStart()
- 액티비티 생성 후 화면에 전시되기 전에 호출(Stopped 상태에서 다시 전시 될 때에도 호출)
- 완료 시 Activity 상태 : Started(visible)
- onResume()
- Activity가 사용자와 상호작용을 시작하기 직전에 시스템에서 호출.(Activity 출력 후 Focus시 호출)
- 이 시점에서 Activity는 스택의 맨 위에 있으며 모든 사용자 입력을 캡처함.
- 앱의 핵심 기능은 대부분 onResume() 메서드로 구현
- onPause() 콜백은 항상 onResume()뒤에 온다.
- Pause 상태에서 다시 Focus시에도 호출
- 완료 시 Activity 상태 : Resumed(Visible)
- onPause()
- 다른 Activity가 Focus되어 현재 Activity가 Pause 상태가 될 때 호출
- '뒤로가기'버튼 등 응답을 기다려야하는 특정 버튼을 클릭 시 발생
- Activity가 부분적으로 표시되지만 대체로 사용자가 해당 Activity를 떠나고 있으며, 조만간 'Stopped' 또는 'Restarted'상태로 전환됨을 의미함
- 사용자가 UI 업데이트를 기다리고 있다면 Puase상태의 Activity는 계속 UI를 업데이트 할 수 있음(Focus를 잃더라도 UI는 계속 업데이트 된다)
- 완료 시 Activity 상태 : Pause
- onStop()
- 기존 Activity가 다른 Activity에 의해 완전히 가려져 더이상 사용자에게 표시되지 않을 때 호출
- Activity가 '제거 중'이거나, 새로운 Activity가 '시작 중'이거나 기존 Activity가 'Restarted' 상태로 전환 중이고 중지된 Activity를 다루고 있기 때문에 발생할 수 있음
- 이 모든 상황에서 중지된 Activity는 더 이상 표시되지 않음
- Activity가 사용자와 상호작용하기 위해 다시 시작 될 때 시스템은 onRestart()콜백을 호출하며, 이 Activity가 완전히 종료 될 시 onDestroy() 콜백 호출
- 완료 시 Activity 상태 : Stopped
- onRestart()
- Stopped 상태(다른 Activity에 의해 가려진 상태)에서 다시 화면에 출력 될 때 호출
- Activity가 중지된 시간부터의 상태를 복원
- 이 콜백 뒤에 항상 onStart()가 온다
- 완료 시 Activity 상태 : Restarted
- onDestroy()
- Activity가 제거되기 전 시스템에서 호출
- Activity가 수신하는 마지막 콜백
- 일반적으로 Activity 또는 Activity가 포함된 프로세스가 제거될 때 Activity의 모든 리소스를 해제하도록 구현됨
- 완료 시 Activity 상태 : Stopped
참고자료
developer.android.com/guide/components/activities/intro-activities?hl=ko
'개발 > Android' 카테고리의 다른 글
매니페스트(AndroidManifest) (0) | 2021.02.01 |
---|