일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DBeaver
- Server
- 상태코드
- 오라클
- 톰캣
- 자바문법
- git
- 인텔리제이
- Javascript
- 자바스크립트
- HTTP
- 보안
- Tomcat
- Eclipse
- JSON
- 마이바티스
- IntelliJ
- 자바
- Redis
- 모바텀
- JQuery
- oracle
- java
- svn
- 디비버
- SQL
- mybatis
- 이클립스
- db
- Linux
- Today
- Total
JongTachi의 개발 블로그
Android Activity-LifeCycle 본문
액티비티에는 특정 시점에 호출되는 여러 메서드가 있다. 예를 들어 onCreate()는 생성 시점에 호출된다. 이렇게 특정한 타이밍에 호출되는 메서드를 콜백 메서드라고 한다. 액티비티의 생명주기는 다음과 같다. 각 타이밍에 호출되는 콜백 메서드를 표시하고 있다.
센서처럼 화면이 꺼져 있을 때는 센서가 동작하지 않고 화면이 켜져 있을 때만 동작하여 처리하는 경우가 있다. 만약 계속 센서가 동작한다면 배터리가 빨리 소모될 것이다. 이 처럼 적절한 타이밍에 필요한 코드를 작성하려면 생명주기를 잘 알아야 한다. 생명주기를 몇가지 구간으로 나누어서 보면 좀 더 이해하기가 쉽다.
1. 액티비티 시작
액티비티가 시작되면 가장 먼저 onCreate() 메서드가 호출된다. 즉 onCreate() 메서드를 오버라이드하여 프로그램을 작성하면 액티비티가 시작되면서 작성한 프로그램이 자동으로 시작된다. 그 다음에는 onStart() 메서드와 onResume() 메서드 순으로 호출된다.
2. 액티비티 종료
액티비티가 종료될 때는 화면에서 보이지 않게 되는 순간 제일 먼저 onPause() 메서드가 호출되고 완전히 보이지 않게 된다면 onStop() 메서드가 호출되며 마지막으로 onDestory() 메서드가 호출된다. 간단한 앱을 작성할 때는 사용할 일이 거의 없지만, 복잡한 앱을 작성하면 액티비티가 종료될 때 메모리에서 해제하는 객체가 있을 수 있다. 이때 onDestory() 메서드를 오버라이드한다.
3. 액티비티 재개
앱을 실행중에 종료하지 않고 백그라운드에서 대기하는 경우가 있다(글쓴이는 상당히 많다..) 예를들어 다른 앱이 실행되거나, 홈 키를 누르거나, 전원 버튼을 눌러 화면을 끄는 경우가 있다. 이때는 onPause(), onStop() 메서드까지만 호출되고 대기하게 된다. 이때 다시 앱이 전면으로 나오는 경우, 즉 화면을 다시 켜거나 최근 실행한 앱에서 다시 앱을 실행하는 경우이다. 이 때는 onRestart(), onStart(), onResume() 순으로 호출된다.
4. 프로세스 강제 종료
안드로이드의 모든 앱은 백그라운드 실행 중에는 메모리 부족 등으로 강제로 종료될 수 있다. 이 경우 앱을 다시 실행하면 onCreate() 메서드부터 호출한다.
'Android' 카테고리의 다른 글
All of Fragment (0) | 2022.06.20 |
---|---|
Service Life_Cycle (0) | 2022.06.06 |
Android 구조 (0) | 2022.05.18 |
Android Storage (0) | 2022.05.16 |