재밌고 어려운 IT를 이해해보자~!
에플리케이션 생명주기 본문
생명주기(Lifecycle)란?
Lifecycle은 Life + cycle의 합성어로, 삶의 순환이라고 직역할 수 있겠다. 말 그대로 탄생하고 성장하여 죽음에 이르기까지의 과정이라고 생각한다면, 이것을 안드로이드 앱에 적용한 것이 바로 Android Lifecycle이다. Activity, Fragment, Service 총 세가지 종류의 Lifecycle이 있다.
생명주기가 필요한 이유!
예를 들어보자. 당신은 지금 카톡을 하고 있다. 그런데 갑자기 친구가 술먹자며 나오라고 전화를 했다. 당신이 전화를 받는순간 전화창이 화면에 보일 것이다. 그러다 약속을 잡고 전화를 끊고 다시 카톡을 실행하면 화면에 카톡창이 보일 것이다.
카톡 실행중 -> 카톡 닫고 전화 실행 -> 전화 실행중 -> 전화 끊고 카톡 실행 -> 카톡 실행중
위와 같은 로직이 나오게 된다. 사용자들은 그저 실행과 종료를 통해 해당 로직을 파악할 수 있지만, 우리의 안드로이드는 그러지 못한다. 그렇기에 Lifecycle이라는 개념을 넣어 안드로이드 프로그램의 상태 변화를 파악하고 반응할 수 있게 한 것이다.
액티비티 생명주기(Activity Lifecycle)
1) onCreate()
- Activity가 생성되면 가장 먼저 호출됨
- 화면 Layout 정의, View 생성, Databinding 등은 이곳에 구현함
- 생명주기 통틀어서 단 한 번만 수행되는 메소드
- 따라서 Activity 최초 실행에 해야하는 작업을 수행하기에 적합함
2) onStart()
- Activity가 화면에 표시되기 직전에 호출됨
- 화면에 진입할 때마다 실행되어야 하는 작업을 이곳에 구현함
3) onResume()
- Activity가 화면에 보여지는 직후에 호출됨
- 현재 Activity가 사용자에게 포커스인 되어있는 상태
4) onPause()
- Activity가 화면에 보여지지 않은 직후에 호출됨
- 현재 Activity가 사용자에게 포커스아웃 되어있는 상태
- 다른 Activity가 호출되기 전에 실행되기 때문에 무거운 작업을 수행하지 않도록 주의해야함
- 영구적인 Data는 이곳에 저장
5) onStop()
- Activity가 다른 Activity에 의해 100% 가려질 때 호출되는 메소드
- 홈 키를 누르는 경우, 다른 액티비티로의 이동이 있는 경우가 있음
- 이 상태에서 Activity가 호출되면, onRestart() 메소드가 호출됨
6) onDestroy()
- Activity가 완전히 종료되었을 때 호출되는 메소드
- 사용자: finish(), onBackPressed()(기존 액티비티의 onResume()까지 호출된 후 onDestroy() 호출)
- 시스템: 메모리부족(프로세스 종료)
- onStop(), onDestroy() 메소드는 메모리 부족이 발생하면 스킵될 수 있음
7) onRestart()
- onStop()이 호출된 이후에 다시 기존 Activity로 돌아오는 경우에 호출되는 메소드
- onRestart()가 호출된 이후 이어서 onStart()가 호출됨
'개인공부' 카테고리의 다른 글
안드로이드 스튜디오 구조 (0) | 2024.11.19 |
---|---|
코틀린 (0) | 2024.11.18 |
Nginx (2) | 2024.11.11 |
CodeIgniter (2) | 2024.11.07 |
SVN (0) | 2024.11.07 |
Comments