<Activity Lifecycle>
- [ ] Activity가 열릴 때(새로 만들어졌을 때)
- (24분) onCreate()
: Activity가 처음 생성되었을 때 호출이 되며, 딱 한 번만 호출된다. 단, 화면이 회전되면 Activity가 다시 생성되는 것으로 인식하여 이 때는 다시 호출될 수 있다.
(why? 가로 화면, 세로 화면이 보이는 view가 차이가 있을 수 있어서. - 여기에 대해선 manifest에서 정의할 수 있다.)
(예)
- 어떤 XML 파일을 사용하여 레이아웃을 구성할 지 설정
- 다양한 View(Button, EditText..)들을 설정
- onStart()
: Activity가 화면에 제대로 표시되기 직전에 호출됨. - onCreate와는 다르게, 나갔다가 들어오면 또 호출된다.
(예)
- 배경 음악 재생 준비 : 외부 파일을 사용해야 해서 오래 걸림. 그래서 화면이 보이기 전에 미리 처리를 해야 함.
- onResume()
: Activity가 사용자와 상호작용이 가능해질 때 호출(사용자가 화면에 있는 것들을 누를 수 있을 때)
(예)
- 지도 앱에서 GPS 사용 활성화(센서와 같은 것들)
- [ ] Activity가 닫힐 때
- onPause()
: Activity의 일부가 가려지거나, 투명하게 보이는 경우 호출(화면의 일부가 가려져 사용자가 상호작용하기 어려울 때)
(예)
- GPS 사용 일시정지(사용자가 보이지 않을 때는 쓰고 있을 필요가 X, 배터리 소모를 줄일 수 있다.)
- 권한 허용 물어보면서 가려지는 순간 호출됨.
- onStop()
: onPause() 다음에 호출이 된다. Activity가 완전히 사용자에게 보이지 않을 때 호출됨. 즉, 홈 키를 눌렀거나 다른 앱으로 완전히 넘어갔을 때.
(예)
- 데이터 저장과 같은 무거운 작업들(때애 따라서는 onPause에서 하게 될 수도 O)
- onRestart()
: onStop() 다음. Activity가 완전히 사라졌다가 다시 보이기 시작할 때 호출.(홈에서 나갔다 들어오거나 다른 Activity에서 다시 돌아올 때 - onStop()이후)
(예)
- 앱 평가 요청 팝업
: 처음 실행시에는 보이지 않지만, 다시 왔을 때 해야 하는 작업들을 처리
- 게임 일시정지 이후 다시 시작하겠냐고 묻는 알림창
- 중간 삽입 광고
- onDestroy()
: Activity가 완전히 사라졌을 때 호출.(홈키를 눌렀다거나 다른 Activity로 넘어갔다거나를 더 넘어서서 완전히 사용하지 않는 것.) 사용자의 뒤로 가기로 종료되었을 때, 혹은 강제 종료(메모리 부족 등의 이유로) 시켜도 호출된다.
(예)
- 비디오 플레이어에서 영상 파일 닫기(영상 파일은 외부 요소이기 때문에 꼭 닫아주어야 한다. - 그렇지 않으면 다른 앱에서 사용을 하지 못할 수도 있다.)
- 전체 개요
- Activity 시작
→ onCreate
→ onStart
→ onResume
→ 실행
- → 화면 가려짐 → onPause → 다시 돌아옴. → onResume으로 돌아감.
- 완전히 화면 사라짐 → onStop → 다시 돌아옴 → onRestart(다시 화면에 보임) → onStart로 돌아감.
→ onDestroy(완전히 화면을 끈 것.)
- Activity와 Fragment
- Activity : 가장 큰 화면 단위(독립적)
- Fragment : Activity에 종속되는 화면 단위
- 카카오톡의 전체 화면 → Activity
- 카카오톡의 개별 화면(친구, 채팅 등) → Fragment
- (예)
- Fragment의 LifeCycle
: Activity와 유사하지만 추가되는 부분이 있음.
- onCreateView() : View를 생성할 때
- onViewCreated() : View가 생성되었을 때
- onDestroyView() : View가 없어질 때
'✨ 공부 기록 > Android' 카테고리의 다른 글
[스터디 4] 배운 내용 정리 (0) | 2022.11.02 |
---|---|
[Android] 새로운 Activity 만들기 (0) | 2022.10.09 |