일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 부스트캠프
- 클린코드
- Windows10
- Node.js
- CardView
- 노마드코더
- androidstudio
- RecyclerView
- BOJ
- activity
- 노개북
- 북클럽
- 액티비티
- CS50
- 사용자폴더
- codility
- Android
- 백준
- 안드로이드
- github
- 윈도우10
- 알고리즘
- 데이터바인딩
- 선형레이아웃
- 지하철api
- 부스트코스
- java
- listview
- 트렐로 삭제
- 노마드북클럽
- Today
- Total
Be Developer
[Android] 액티비티 생명 주기(Activity Life Cycle) 본문
액티비티 생명 주기 관리
액티비티의 기본적인 세 가지 상태
1. 재개됨(Resumed) = 실행 중
- 액티비티가 화면 포그라운드에 있고 사용자 포커스를 가짐
2. 일시정지됨(Paused)
- 다른 액티비티가 이 액티비티 위에 표시되어 있으며 해당 액티비티는 부분적으로 투명하거나 전체 화면을 덮지 않는 상태
- Activity 객체가 메모리에 보관되어 있고, 모든 상태 및 멤버 정보를 유지하며, 창 관리자에 붙어있는 상태로 유지되지만 메모리가 부족한 경우 시스템이 중단시킬 수 있음
3. 정지됨(Stopped)
- 액티비티가 다른 액티비티에 완전히 가려진 상태 (백그라운드에 위치함)
- Paused 상태와 유사하지만 창 관리자에 붙어있지 않음
- 더 이상 사용자에게 표시되지 않으며 다른 곳에 메모리가 필요하면 시스템이 종료시킬 수 있음
생명 주기 콜백 구현
- 생명 주기 메서드를 구현하려면, 항상 슈퍼클래스 구현을 호출한 다음에만 다른 작업을 시작할 수 있음
- 액티비티 전체 수명 : onCreate() ~ onDestroy()
- 액티비티 가시적 수명 : onStart() ~ onStop()
1. 사용자가 액티비티를 화면에서 보고 이와 상호작용할 수 있음
2. 시스템은 액티비티의 전체 수명 내내 onStart() 및 onStop()을 여러 번 호출할 수 있으며, 이때 액티비티는 사용자에게 표시되었다 숨겨지는 상태를 오가게 됨
- 액티비티 전경 수명 : onResume() ~ onPause()
1. 이 액티비티가 화면에서 다른 모든 액티비티 앞에 표시되며 사용자 입력도 여기에 집중됨
2. 이 상태는 자주 전환될 수 있으므로, 이 두 메서드의 코드는 상당히 가벼워야 함
- 시스템이 메서드가 반환된 후 액티비티 코드의 다른 줄을 실행하지 않고도 언제든 이 액티비티를 호스팅하는 프로세스를 중단시킬 수 있는 메서드 : onPause(), onStop(), onDestroy()
- 시스템이 비상 시에 메모리를 복구해야 할 경우 onStop(), onDestroy()는 호출되지 않을 수도 있음
- 중요한 영구적 데이터를 보관하기 위해 작성하는 경우 onPause() 사용
'Android' 카테고리의 다른 글
[Android] 액티비티의 구성 변경 처리와 조정 (0) | 2019.04.29 |
---|---|
[Android] 액티비티 상태 저장 (0) | 2019.04.29 |
[Android] 액티비티의 생성, 선언, 시작, 종료 (0) | 2019.04.29 |
[Android] 액티비티(Activity)와 백 스택(Back Stack) (0) | 2019.04.29 |
공공데이터 api 사용기 (0) | 2019.02.18 |