# 안드로이드 생명 주기
보통 앱은 하나 이상의 액티비티가 서로 연결된 형태로 구성된다.
안드로이드는 앱이 실행된 후 다른 액티비티 화면으로 전환되거나, 스마트폰 화면이 꺼지거나 혹은 앱이 종료될 때와 같이 상태 변화가 있을 때마다 화면에 보이는 액티비티의 생명 주기 메서드를 호출해서 상태 변화를 알려준다.
생명주기는 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy() 6가지로 구성이 되어있다.
# 실행 순서
1.onCreate() -> 처음에 액티비티가 생성이 되었을때 실행 , 필수적으로 필요한 콜백, 단 한 번만 실행
2.onStart() -> 사용자에게 보이기 직전에 실행
3.onResume() -> onStart와 비슷 액티비티가 뜨고 동작하기 바로 직전에 실행
onCreate(),onStart(),onResume()이 세가지는 액티비티가 실행되기전 실행되는 순서이다.
4.onPause() -> 여기서 부터는 액티비티가 실행상태인 이후의 생명주기들이다
다른 액티비티가 전면에 보일때 실행(화면이 가려짐), 데이터 저장 등의 처리를 하기에 적당하다
여기서 다시 메인 액티비티가 전면에 보여지면 onResume()을 실행한다.
5.onStop() -> 화면이 완전히 다른 액티비티에 가려졌을때 실행(화면 없어짐)
여기서 다시 메인 액티비티가 보여지면 onRestart()을 실행, 주로 리소스를 해제하거나 조정해야 할 때 사용
6.onDestroy() -> 액티비티가 완전히 소멸할 때 실행(액티비티 종료), finish() 메소드가 호출되거나, 시스템 메모리 확보를 하기에 적당하다
# 기본 주기
1. 처음 액티비티를 실행하면
2. onCreate() -> onStart() -> onResume() 콜백 메소드를 호출하게 되고
3. Activity가 실행중인 모습이 사용자에게 보여진다.
4. 다른 Activity를 실행하게 되면 현재 Activity는 중지되어야 하므로 onPause() 콜백 메소드가 호출된다.
5. 사용자가 다시 Activity로 돌아오게 되면 onResume()이 호출되고,
6. 아니면 Activity가 더 이상 보이지 않는다면 onStop()이 호출된다.
7. onStop()이 호출된 이후 다시 Activity를 실행하려고 하면
8. onRestart()를 호출하면서 다시 onStart() 부터 호출해나간다.
9. 다른 앱을 실행하게 되어 onPause()나 onStop() 상태에서 메모리 문제로 앱을을 중단시켰을 때는
10. 다시 앱을 실행할 때 onCreate()를 호출하게 된다.
11. onStop() 상태에서 사용자나 시스템이 앱을 아예 종료하게 되면
12. onDestroy()가 호출되면서 Activity가 완전히 종료되고
13. 완전히 종료 후 다시 실행할 때는 onCreate() 부터 시작한다.
참고자료
https://jhshjs.tistory.com/43
https://youngest-programming.tistory.com/m/29
'안드로이드 공부 노트' 카테고리의 다른 글
안드로이드 Fragment LifeCycle(프래그먼트 생명 주기)알아보기! (0) | 2022.01.23 |
---|---|
Android Jetpack - 2편(View Binding) 예제를 이용한 사용법 (0) | 2022.01.22 |
Android Jetpack - 1편 (Room) 예제를 이용한 사용법 (0) | 2022.01.20 |
안드로이드 디자인패턴 - MVC, MVP, MVVM 패턴 (0) | 2022.01.14 |
안드로이드 4대 컴포넌트 (1) | 2021.12.18 |