일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 음수가 포함된 최단경로
- 기술면접
- 플로이드 와샬
- union-find
- 직무면접
- kmeans
- 최단경로
- 다익스트라
- Java
- scikit-learn
- 동적계획법
- Controller
- 유니온 파인드
- dto
- top-down
- 우선순위큐
- 코딩테스트
- 거쳐가는 정점
- 벨만 포드 알고리즘
- BufferedReader
- Django
- Python
- onclick
- compiler
- spring boot
- 엔테크서비스
- Android Studio
- clean code
- bottom-up
- disjoint set
Archives
- Today
- Total
춤추는 개발자
[AOS] Activity의 생명 주기 본문
728x90
반응형
Activity는 메모리에 상주되면서 소멸되기까지 생명 주기(Life Cycle)를 가지고 있습니다. 이에 따라 콜백 메서드가 호출되는데, Activity를 구현할 시에 반드시 알아야하는 내용입니다.
위 이미지는 구글 안드로이드 레퍼런스 API 가이드에 나오는 Activity의 생명 주기입니다.
다음으로 각 메서드에 관한 간략한 표를 가져왔습니다.
메소드 | 설명 | 다음 메소드 |
onCreate() | 액티비티가 생성될 때 호출되며 사용자 인터페이스 초기화에 사용됨. | onStart() |
onRestart() | 액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨. | onStart() |
onResume() | 액티비티가 사용자와 상호작용하기 바로 전에 호출됨. | onPause() |
onPause() | 다른 액티비티가 보여질 때 호출됨. 데이터 저장, 스레드 중지 등의 처리를 하기에 적당한 메소드. | onResume() 또는 onStop() |
onStop() | 액티비티가 더이상 사용자에게 보여지지 않을 때 호출됨. 메모리가 부족할 경우에는 onStop() 메소드가 호출되지 않을 수도 있음. | onRestart() 또는 onDestroy() |
onDestroy() | 액티비티가 소멸될 때 호출됨. finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해 액티비티를 제거할 때 호출됨. | 없음 |
각 생명 주기 메소드를 오버라이딩하여 상황에 맞는 기능을 구현하면 됩니다.
다음으로 이전 포스팅과 관련하여 2가지 가정에 따라 Activity의 생명 주기를 관찰해보도록 하겠습니다.
Q1. MainActivity에서 SubActivity를 호출했을 때, 생명 주기가 호출되는 순서
맨 위에 그림에 따르면 MainActivity에서 onPause()와 onStop() 메서드가 먼저 호출된다고 생각합니다. 하지만 실제로는 SubActivity가 먼저 실행된 후, MainAcitivty의 onStop()메서드가 호출됩니다.
Q2. 반대로 SubActivity에서 MainActivity로 다시 돌아갈 때, 생명주가기 호출되는 순서
이번에도 SubActivtiy의 onDestroy()가 먼저 호출될 거라고 생각합니다. 하지만 MainActivty가 먼저 실행되어 화면에 보여진 후에 SubActivity의 onDestroy() 메서드가 호출되어 삭제됩니다.
728x90
반응형
'Android > study_til' 카테고리의 다른 글
아키텍쳐 디자인 패턴 - MVP란? (0) | 2021.05.21 |
---|---|
아키텍처 디자인 패턴 - MVC란? (0) | 2021.05.21 |
[AOS] 안드로이드의 통신 수단 Intent (0) | 2021.05.21 |
[AOS] 안드로이드 4대 컴포넌트 (0) | 2021.05.21 |
[Android Studio] Http protocol 접속 시, 발생하는 예외발생 조치하기 (0) | 2020.12.30 |